如何在Matplotlib中绘制上下限时调整箭头尺寸?
控制Matplotlib中errorbar上限箭头的尺寸
你可以通过plt.errorbar的arrowprops参数直接自定义箭头的尺寸和样式,无需事后修改图形对象。箭头的头部长度、头部宽度、箭杆宽度都能通过这个参数灵活调整:
示例代码:
import matplotlib.pyplot as plt import numpy as np # 模拟测试数据 x = [0, 1] y = [1, 2] y_err = [0.5, 0.3] lim = [True, False] # 标记第一个点为上限无约束 # 绘制误差棒并自定义箭头属性 _, caps, bars = plt.errorbar(x, y, yerr=y_err, uplims=lim, ls='none', arrowprops={'headlength': 5, # 箭头头部长度(像素单位,数值越小箭头越短) 'headwidth': 3, # 箭头头部宽度 'width': 1}) # 箭杆宽度 # 单独调整指定点的箭头尺寸(比如第一个点) if lim[0]: # 取出第一个点的上限误差线箭头 target_bar = bars[0][1] # bars[0]对应第一个点的上下误差线,[1]代表上限部分 target_bar.set_arrowprops({'headlength': 2, # 改成你需要的短箭头尺寸 'headwidth': 2, 'width': 0.5}) plt.show()
关键参数说明:
headlength:箭头头部的长度,单位为像素,数值越小箭头越短,你可以根据图表显示效果微调数值来达到类似0.25的视觉比例headwidth:箭头头部的宽度,控制箭头的粗细程度width:箭杆的宽度,也就是误差线本身的粗细
如果需要基于数据坐标而非像素调整箭头长度,可以结合ax.transData做坐标转换,但直接用像素参数调整更直观,适合快速适配图表显示需求。
内容的提问来源于stack exchange,提问作者SKR
相关产品推荐
相关产品推荐

