Matplotlib绘制errorbar图显示ErrorbarContainer对象问题解决
问题原因
x轴出现<ErrorbarContainer object of 3 artists>异常文本的原因非常明确:
你在代码末尾连续三次调用ax.set_xlabel()时,传入的参数不是字符串类型的x轴标签文本,而是ax.errorbar()方法返回的ErrorbarContainer图形对象。Matplotlib会自动将传入的非字符串参数转换为对应的字符串表示渲染到轴标签位置,就出现了你看到的异常文本。
另外你连续三次调用set_xlabel()时,最后一次的设置会覆盖前两次的结果,最终显示的是最后一次传入对象的字符串形式。
顺带一提,你将errorbar()的返回值命名为rects1/rects2/rects3属于命名误区:errorbar()不会返回柱状图矩形元素,返回的是包含数据标记、误差线、误差线端帽的容器对象,这类命名很容易误导后续的属性设置操作。
修复方案
- 直接删除三行错误代码即可消除异常显示,需要删除的代码如下:
# 以下三行是错误代码,直接删除 ax.set_xlabel(rects1) ax.set_xlabel(rects2) ax.set_xlabel(rects3)
- 如果你需要为x轴添加说明文本,只需要调用一次
set_xlabel()方法,传入想要展示的字符串内容即可,参考示例:
ax.set_xlabel('哈希冲突处理方式')
修复后运行代码,x轴的异常文本就会完全消失,图表其余逻辑不需要改动。
内容的提问来源于stack exchange,提问作者Matheus Cirillo
相关产品推荐
相关产品推荐

