有没有办法给matplotlib饼图一个zorder?

时间:2017-11-21 19:52:14

标签: python matplotlib charts pie-chart

我正在使用matplotlib饼图:https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.pie.html

我正在生成使用这些饼图的网络图。我在饼图的中间画了一条线来描绘两个不同的过程。我的问题是,当我在中间绘制这条线时,它将覆盖所有饼图的顶部,因此如果它们重叠,则线条将无法正确分层:

我意识到matplotlib饼图没有zorder,但有没有办法让它模拟zorder?这样我可以使用zorder作为该行,然后在该行顶部对饼图进行叠加以使其重叠。

1 个答案:

答案 0 :(得分:1)

pie()返回补丁列表。这些单独的修补程序具有zorder属性,因此您可以循环遍历它们并调整其zorder

fig,ax = plt.subplots()
ax.set_aspect('equal')
p1,t1 = plt.pie([50,50], center=(0,0))
p2,t2 = plt.pie([1,1,1,1], center=(1.2,0)) # this pie-chart is over the first one

[p.set_zorder(-1) for p in p2] # change the z-order of the patches so that the
                               # 2nd pie-chart ends up below the first one

enter image description here