Matplotlib的stackplot更改重叠区域的颜色

zzoitvuj  于 2023-03-09  发布在  其他
关注(0)|答案(1)|浏览(176)

当我使用Matplotlib的stackplot绘制堆叠面积图时,如果一组y值中有一个负数,则该面积将与下面的面积重叠。

import matplotlib.pyplot as plt
plt.stackplot([1,2,3], [1,2,3], [1,0,-1])
plt.show()

你可以看到上面的y值是橙子的,因为最右边的y值是-1,它与蓝色区域重叠,这对我的目的来说很好,除了,我需要弄清楚这是一个重叠,而不是蓝色区域,从x=2.0x=3.0,橙子区域是正的。可以将这样的重叠设置为其他颜色吗?

wtzytmuj

wtzytmuj1#

可以将这样的重叠设置为其他颜色吗?
是的,您可以在两次运行中绘制第二个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())

相关问题