如何修改Matplotlib中上限误差棒的箭头为非填充样式
解决Matplotlib上限误差棒箭头非填充的问题
要实现非填充的上限误差棒箭头,你可以通过以下操作修改样式:
- 调用
plt.errorbar时保存返回的ErrorbarContainer对象 - 遍历容器中的
upperlims元素(这些是填充的箭头多边形),设置其填充色为透明
修改后的完整代码:
import numpy as np import matplotlib.pyplot as plt testdata = np.random.random(300) # 获取误差棒容器 eb = plt.errorbar(np.arange(300), testdata, xerr=None, yerr=0.04, uplims=True, fmt='_', capsize=3) # 将上限箭头改为非填充样式 for arrow in eb.upperlims: arrow.set_facecolor('none') # 可选:让箭头边框颜色和数据点线条颜色一致 arrow.set_edgecolor(eb.lines[0].get_color()) plt.show()
原理说明
plt.errorbar返回的ErrorbarContainer封装了所有误差棒相关的图形元素,其中upperlims对应开启uplims=True时生成的填充箭头(本质是Polygon多边形对象)。设置facecolor='none'即可去除填充效果,只保留箭头的边框,实现非填充箭头样式。
内容的提问来源于stack exchange,提问作者Eli
相关产品推荐
相关产品推荐

