当我使用 Matplotlib 的
stackplot
绘制堆积面积图时,如果一组 y
值中有一个负数,那么该区域将与下面的区域重叠。例如:
import matplotlib.pyplot as plt
plt.stackplot([1,2,3], [1,2,3], [1,0,-1])
plt.show()
您可以看到顶部的一组
y
值是橙色的。由于最右边的y
值是-1
,它与蓝色区域重叠。这对我来说很好。除了,我需要明确它是一个重叠,而不是蓝色区域只是停留在 y=2.0
从 x=2.0
到 x=3.0
和橙色区域是积极的。像这样的重叠可以设置成不同的颜色吗?
这样的重叠可以设置成不同的颜色吗?
是的,你可以在两次运行中绘制第二个 y 数据:
import matplotlib.pyplot as plt
import numpy as np
y1 = [1,2,3]
y2 = [1,0,-1]
polys = plt.stackplot([1,2,3], y1, np.maximum(y2, 0), np.minimum(y2, 0))
然而,我认为更好的解决方案是使颜色半透明,也许还有额外的影线:
polys = plt.stackplot([1,2,3], [1,2,3], [1,0,-1], alpha=0.3)
for poly, hatch in zip(polys, ['|', '-']):
poly.set_hatch(hatch)
poly.set_edgecolor(poly.get_facecolor())