Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Matplotlib:调整条形图中错误条的z级别_Python_Matplotlib - Fatal编程技术网

Python Matplotlib:调整条形图中错误条的z级别

Python Matplotlib:调整条形图中错误条的z级别,python,matplotlib,Python,Matplotlib,产生 我希望绿色值的错误条被蓝色条覆盖 我认为调整绘图的z级别应该可以实现这一点(这就是我首先分别使用.bar和.errorbar的原因): 这给 我找不到一个有效的Zorder组合。如何正确调整Matplotlib条形图中错误条的z级 我认为您必须分别设置capline的z顺序(它们是通过以下方式返回的三个对象之一): 非常感谢,这就成功了。值得注意的是:此解决方案不适用于Matplotlib的旧1.1.1rc版本,但适用于1.3.1以上版本。 import pylab as pl impo

产生

我希望绿色值的错误条被蓝色条覆盖

我认为调整绘图的z级别应该可以实现这一点(这就是我首先分别使用.bar和.errorbar的原因):

这给


我找不到一个有效的Zorder组合。如何正确调整Matplotlib条形图中错误条的z级

我认为您必须分别设置capline的z顺序(它们是通过以下方式返回的三个对象之一):


非常感谢,这就成功了。值得注意的是:此解决方案不适用于Matplotlib的旧1.1.1rc版本,但适用于1.3.1以上版本。
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')
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)
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')