Matplotlib中如何将误差线隐藏在空心标记下方
解决误差线不穿过空心菱形内部的方案
直接将误差线与空心标记分开绘制,就能彻底解决误差线穿透菱形内部的问题:
先绘制仅含误差线的图层(不显示标记)
plt.errorbar(x=unknown['asd'], y=(unknown['dsa'])*-10, xerr=unknown['asderr'], yerr=(unknown['dsaerr']*-10), linestyle="None", fmt='none', # 核心设置:关闭errorbar自带的标记 ecolor='b', elinewidth=0.2, capsize=0.05, alpha=0.6)再单独绘制空心菱形标记,通过
zorder确保标记覆盖在误差线上方plt.plot(unknown['asd'], (unknown['dsa'])*-10, marker='D', markerfacecolor='white', # 用画布背景色填充,保证内部空白 markeredgecolor='blue', markeredgewidth=1, markersize=7, linestyle='None', zorder=2, alpha=0.6)
原方法失效的原因
之前用errorbar同时生成标记和误差线时,这两个元素属于同一个绘图对象,无法通过zorder单独调整层级。分开绘制后,误差线处于底层,顶层的空心标记用背景色填充内部,会完全覆盖下方的误差线,实现内部无误差线的效果。
若你的画布背景不是白色,只需将markerfacecolor改为对应背景色即可。
内容的提问来源于stack exchange,提问作者James Lane
相关产品推荐
相关产品推荐

