[英]Errorbar plot with multiple y-axes produces ValueError
我正在尝试使用来自此处的具有多个轴的绘图作为模板创建具有多个y轴的errorbar绘图。 如果仅更改模板的这一行:
p1, = host.plot([0, 1, 2], [0, 1, 2], "b-", label="Density")
对此:
p1, = host.errorbar([0, 1, 2], [0, 1, 2], yerr=[0.5, 0.5, 0.5], fmt='b-', label="Density")
我得到的输出:
有人可以帮忙解释为什么会这样吗? 提前致谢。
errorbar
和plot
返回不同的结果。 plot
返回行的列表,但是在这种情况下,代码假设仅返回了一行,因此p1,
等将其从列表中删除。
errorbar
会返回一个Container对象,并且该容器包含多行。 您不能使用p1,
来返回errorbar
。 相反,您需要以不同的方式处理它。
p1
在以后的代码中有两个不同的用途:设置颜色和设置标签。 事实证明, get_label
是容器的方法。 get_color
不是,但是它是容器子代的方法,并且应该是相同的颜色。 因此,更改代码以仅将容器分配给p1
,并使用其子容器之一的颜色。 例如:
p1 = host.errorbar([0, 1, 2], [0, 1, 2], yerr=[0.5, 0.5, 0.5],
fmt='b-', label="Density")
然后:
host.yaxis.label.set_color(p1.get_children()[0].get_color())
和
host.tick_params(axis='y', colors=p1.get_children()[0].get_color(), **tkw)
图例设置代码根本不需要更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.