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

如何在matplotlib中仅高亮图表底部指定x轴范围而非全高度填充

实现指定高度垂直区间高亮的两种方案

方案1:直接调整axvspan的纵向范围参数

axvspan本身就支持ymin和ymax参数,取值为0~1的轴相对坐标,0对应图表底部,1对应图表顶部。你只需限制这两个参数的取值就能得到非全高的高亮区域:

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
# 绘制示例曲线
ax.plot([0,1,2,3], [1,3,2,4])
# 高亮x=0.5到1.5范围,仅覆盖底部20%的高度
ax.axvspan(xmin=0.5, xmax=1.5, ymin=0, ymax=0.2, color='yellow', alpha=0.3)
plt.show()

方案2:使用Rectangle补丁实现自定义尺寸高亮

如果你需要基于数据坐标而非相对坐标控制高亮的纵向范围,可以用矩形补丁实现:

import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle

fig, ax = plt.subplots()
ax.plot([0,1,2,3], [1,3,2,4])
# 定义矩形参数:x起始位置、y起始位置、宽度、高度(均为数据坐标系数值)
# 示例:x从0.5到1.5,y从0到0.5的高亮区域
highlight = Rectangle((0.5, 0), width=1, height=0.5, color='yellow', alpha=0.3)
ax.add_patch(highlight)
plt.show()

方案选择参考

  • 如果需要高亮区域始终固定在底部不随y轴缩放变化,选方案1调整ymax即可
  • 如果需要高亮区域的高度和y轴数据绑定,随缩放同步变化,选方案2更合适

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 02:36:04