Matplotlib:调整条形图中错误栏的 z 级别
Matplotlib: Adjusting z-levels of errorbars in barchart
import pylab as pl
import numpy as np
x = np.arange(4)
y1, y2 = [1,2,1,1], [2,3,1,1.5]
pl.bar(x+0.2,y2, width=0.45, color='g')
pl.errorbar(x+0.4,y2,fmt=None, yerr=0.75, ecolor='r',
lw=2, capsize=10., mew = 3)
pl.bar(x,y1,width=0.45)
pl.errorbar(x+0.2,y1,fmt=None, yerr=0.5, ecolor='r',
lw=2, capsize=10., mew = 3)
pl.savefig('err.png')
生产
我希望绿色值的误差线被蓝色条覆盖。
我认为调整绘图的 z 水平应该可以实现这一点(这就是我首先分别使用 .bar 和 .errorbar 的原因):
pl.bar(x+0.2,y2, width=0.45, color='g', zorder=1)
pl.errorbar(x+0.4,y2,fmt=None, yerr=0.75, ecolor='r',
lw=2, capsize=10., mew = 3, zorder=1)
pl.bar(x,y1,width=0.45, zorder=2)
pl.errorbar(x+0.2,y1,fmt=None, yerr=0.5, ecolor='r',
lw=2, capsize=10., mew = 3, zorder=2)
这给出
我找不到有效的 zorders 组合。如何正确调整 Matplotlib 条形图中错误栏的 z 级别?
我认为你必须单独设置 caplines 的 z 顺序(它们是 pylab.errorbar 返回的三个对象之一:
import pylab as pl
import numpy as np
x = np.arange(4)
y1, y2 = [1,2,1,1], [2,3,1,1.5]
pl.bar(x+0.2,y2, width=0.45, color='g', zorder=1)
_, caplines, _ = pl.errorbar(x+0.4,y2,fmt=None, yerr=0.75, ecolor='r',
lw=2, capsize=10., mew = 3, zorder=2)
pl.bar(x,y1,width=0.45, zorder=3)
pl.errorbar(x+0.2,y1,fmt=None, yerr=0.5, ecolor='r',
lw=2, capsize=10., mew = 3, zorder=4)
for capline in caplines:
capline.set_zorder(2)
pl.savefig('err.png')
import pylab as pl
import numpy as np
x = np.arange(4)
y1, y2 = [1,2,1,1], [2,3,1,1.5]
pl.bar(x+0.2,y2, width=0.45, color='g')
pl.errorbar(x+0.4,y2,fmt=None, yerr=0.75, ecolor='r',
lw=2, capsize=10., mew = 3)
pl.bar(x,y1,width=0.45)
pl.errorbar(x+0.2,y1,fmt=None, yerr=0.5, ecolor='r',
lw=2, capsize=10., mew = 3)
pl.savefig('err.png')
生产
我希望绿色值的误差线被蓝色条覆盖。
我认为调整绘图的 z 水平应该可以实现这一点(这就是我首先分别使用 .bar 和 .errorbar 的原因):
pl.bar(x+0.2,y2, width=0.45, color='g', zorder=1)
pl.errorbar(x+0.4,y2,fmt=None, yerr=0.75, ecolor='r',
lw=2, capsize=10., mew = 3, zorder=1)
pl.bar(x,y1,width=0.45, zorder=2)
pl.errorbar(x+0.2,y1,fmt=None, yerr=0.5, ecolor='r',
lw=2, capsize=10., mew = 3, zorder=2)
这给出
我找不到有效的 zorders 组合。如何正确调整 Matplotlib 条形图中错误栏的 z 级别?
我认为你必须单独设置 caplines 的 z 顺序(它们是 pylab.errorbar 返回的三个对象之一:
import pylab as pl
import numpy as np
x = np.arange(4)
y1, y2 = [1,2,1,1], [2,3,1,1.5]
pl.bar(x+0.2,y2, width=0.45, color='g', zorder=1)
_, caplines, _ = pl.errorbar(x+0.4,y2,fmt=None, yerr=0.75, ecolor='r',
lw=2, capsize=10., mew = 3, zorder=2)
pl.bar(x,y1,width=0.45, zorder=3)
pl.errorbar(x+0.2,y1,fmt=None, yerr=0.5, ecolor='r',
lw=2, capsize=10., mew = 3, zorder=4)
for capline in caplines:
capline.set_zorder(2)
pl.savefig('err.png')