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

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

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

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

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

wtzytmuj

wtzytmuj1#

可以将这样的重叠设置为其他颜色吗?
是的,您可以在两次运行中绘制第二个y数据:

  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. y1 = [1,2,3]
  4. y2 = [1,0,-1]
  5. polys = plt.stackplot([1,2,3], y1, np.maximum(y2, 0), np.minimum(y2, 0))

然而,我认为更好的解决方案是使颜色半透明,也许可以使用附加的剖面线:

  1. polys = plt.stackplot([1,2,3], [1,2,3], [1,0,-1], alpha=0.3)
  2. for poly, hatch in zip(polys, ['|', '-']):
  3. poly.set_hatch(hatch)
  4. poly.set_edgecolor(poly.get_facecolor())

展开查看全部

相关问题