gpt4 book ai didi

python - 填充matplotlib线图的上方/下方

转载 作者:行者123 更新时间:2023-12-03 12:44:40 26 4
gpt4 key购买 nike

我正在使用matplotlib创建简单的线图。我的图是一个简单的时间序列数据集,其中我沿x轴有时间,而我在y轴上有测量的值。 y值可以具有正值或负值,如果y值> 0,则我想用蓝色填充行上方和下方的颜色,如果y值<0,则我要填充红色。这是我的绘图:

如您所见,我可以正确地填入蓝色,但是我不能正确填入红色。这是我正在使用的基本代码:

plt.plot(x, y, marker='.', lw=1)
d = scipy.zeros(len(y))
ax.fill_between(xs,ys,where=ys>=d, color='blue')
ax.fill_between(xs,0,where=ys<=d, color='red')

如何获得从y值正向x轴到x轴的区域为蓝色,从y值负向x轴到x轴的区域为红色?谢谢您的帮助。

最佳答案

您提供的代码段应按以下方式更正:

plt.plot(x, y, marker='.', lw=1)
d = scipy.zeros(len(y))
ax.fill_between(xs, ys, where=ys>=d, interpolate=True, color='blue')
ax.fill_between(xs, ys, where=ys<=d, interpolate=True, color='red')

fill_between 方法至少使用两个参数 xy1,同时还具有默认值0的参数 y2。该方法将填充 y1y2之间的指定 x -values区域。

之所以没有在x轴下方填充任何内容,是因为您已指定 fill_between方法应填充 y1=0y2=0之间的区域,即没有区域。为了确保填充不仅仅出现在显式的x值上,请指定该方法应插值 y1以查找与 y2的交集,这是通过在方法调用中指定 interpolate=True来完成的。

关于python - 填充matplotlib线图的上方/下方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16917919/

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