You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在matplotlib图表x轴两点间添加underbrace注释并调整x轴标签位置

实现方案

修改后的代码做了3处核心适配,可直接运行得到目标效果:

  • 修正下花括号的宽度参数,匹配x轴实际区间长度,避免超出绘图范围
  • 增加x轴刻度的底部边距,将刻度标签下移,和花括号注释明确区分
  • 调整注释字体大小、位置参数,保证文本清晰可读
import numpy as np
import matplotlib.pyplot as plt

# 数值数组
values = np.array([[1,2,3], [1,2,3]])

# 绘制折线图
fig, ax = plt.subplots()
plt.plot(values[0,:], values[1,:], 'bo-',label='$P_{1}$')

# 调整x轴刻度标签的边距,向下挪20个点避免和花括号重叠
ax.tick_params(axis='x', pad=20)
# 限制y轴底部范围,留出位置放置注释
ax.set_ylim(bottom=-0.5)

# 添加第一个区间的下花括号注释,覆盖x=1到x=2的区间
ax.annotate('s', xy=(1.5, 0), xytext=(1.5, -0.3),
            fontsize=12, ha='center', va='top',
            arrowprops=dict(arrowstyle='-[, widthB=1.0, lengthB=0.5', lw=2.0))

# 添加第二个区间的下花括号注释,覆盖x=2到x=3的区间
ax.annotate('t-s', xy=(2.5, 0), xytext=(2.5, -0.3),
            fontsize=12, ha='center', va='top',
            arrowprops=dict(arrowstyle='-[, widthB=1.0, lengthB=0.5', lw=2.0))

plt.legend()
plt.show()

后续可根据需求调整参数:

  • 修改lengthB参数调整花括号的高度
  • 修改widthB参数调整花括号覆盖的区间宽度,数值和x轴坐标单位一致
  • 修改xytext的y坐标值,调整注释文本和花括号的距离

内容的提问来源于stack exchange,提问作者user4933

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 11:45:05