gpt4 book ai didi

matplotlib - 如何在 stackplot 中使用 Matplotlib 代理艺术家?

转载 作者:行者123 更新时间:2023-12-03 13:18:18 25 4
gpt4 key购买 nike

示例(在 ipython --pylab 中运行):

x = arange(25)
Y = maximum(0,2+randn(7,25))
stackplot(x,Y)
legend(('A','B','C','D','E','F','G'))

问题:我得到的不是正确的图例,而是一个空的矩形。这是 known issue一个解决方法是使用另一个支持图例的绘图元素,也称为 proxy artist 。现在我想知道如何将这个成语翻译成我有七个数据系列的案例。这是我尝试过的:

 proxy = [Rectangle((0,0), 0,0) for _ in Y]
legend(proxy, ('A','B','C','D','E','F','G'))

现在我有一个包含 7 个元素的图例,但它们都是蓝色的。我怎样才能让代理艺术家匹配堆栈图颜色?

最佳答案

您可以从构成堆栈图的 PolyCollections 中读取颜色。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl

x = np.arange(25)
Y = np.maximum(0,2+np.random.randn(7,25))

fig, ax = plt.subplots()

sp = ax.stackplot(x,Y)

proxy = [mpl.patches.Rectangle((0,0), 0,0, facecolor=pol.get_facecolor()[0]) for pol in sp]

ax.legend(proxy, ('A','B','C','D','E','F','G'))

enter image description here

关于matplotlib - 如何在 stackplot 中使用 Matplotlib 代理艺术家?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22983230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com