如何将误差棒与红色横条重叠的左侧须线改为白色?
解决误差棒与条形重叠部分的可读性问题
需求:将误差棒须线中与红色水平条重叠的左侧部分改为白色,提升图表可读性。尝试给黑色须线添加白色边缘,效果不符合预期。
修改后的代码
import matplotlib.pyplot as plt cm = 1/2.54 # 英寸-厘米转换 fig, axes = plt.subplots( num = 'main', nrows = 2, ncols = 1, sharex=True, dpi = 300, figsize=(16.5*cm, 5*cm) ) axes[0].set_xlim(0,100) axes[0].set_ylim(-1,1) # 先绘制完整的黑色误差棒 axes[0].errorbar( x = 30, y = 0, xerr = [[4], [65]], fmt = 'none', capsize = 2, ecolor = 'black', elinewidth = 1, ) # 绘制红色水平条,遮挡误差棒的重叠区域 axes[0].barh( y = 0, width = 30, height = 1.5, align='center', color = 'red', edgecolor = 'black' ) # 用白色线条覆盖条形上的误差棒重叠部分(从26到30) axes[0].plot([30-4, 30], [0, 0], color='white', linewidth=1) plt.show()
实现思路
- 调整绘制顺序:先画完整的黑色误差棒,再画红色条形,让条形自然遮挡住误差棒的重叠段(26-30)。
- 精准补画白色线段:针对被遮挡的重叠区域,用白色线条重新绘制这段误差棒,确保红色条形上的须线清晰可见。
- 这种方法比添加白色边缘更精准,直接解决重叠部分的可读性问题,操作简单且效果符合预期。
内容的提问来源于stack exchange,提问作者Wasserwaage
相关产品推荐
相关产品推荐

