【发布时间】:2019-12-09 16:53:23
【问题描述】:
假设我有一个这样的df:
df = pd.DataFrame({'A': [-50,-44,-39,-35,-32,-30,-29,-28,-27,-26],
'B': [-46,-49,-52,-53,-52,-49,-46,-44,-43,-42]})
我只是想在使用 Matplotlib 绘制它们时填充列下方的区域 A 和 B。我知道函数fill_between,如果数据是肯定的,下面的代码可以正常工作:
plt.plot(z.index, z['A'], color='red')
plt.plot(z.index, z['B'], color='blue')
plt.fill_between(x=z.index,y1=z['A'], color='red', alpha=0.25)
plt.fill_between(x=z.index,y1=z['B'], color='blue', alpha=0.25)
但是,由于数据是负数,在这种情况下,上面的代码填充了绘制线上方的区域。我只想将填充区域置于数据下方,无论它是正数还是负数,因为我正在使用的实际数据可以是非此即彼,并且通常有时会以 0 为中心,即一半的数据可能是正数另一半是否定的。
任何人都可以建议如何将其填在下面吗?干杯
【问题讨论】:
-
plt.plot(z.index, z['A'], color='red'); plt.plot(z.index, z['B'], color='blue'); y_min = min(z['A'] + z['B'] + [0]); plt.fill_between(x=z.index, y1=y_min, y2=z['A'], color='red', alpha=0.25); plt.fill_between(x=z.index, y1=y_min, y2=z['B'], color='blue', alpha=0.25)怎么样?
标签: python matplotlib