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

如何在matplotlib中锁定x轴范围后叠加绘图?

解决Matplotlib叠加绘图时固定原x轴带边距范围并自适应y轴的问题

核心思路

先绘制第一个数据集,获取Matplotlib自动生成的带边距的x轴范围,叠加新数据后再重置x轴为该范围,同时让y轴自动适配所有数据的垂直区间。

代码示例(pyplot接口)

import matplotlib.pyplot as plt
import numpy as np

# 模拟测试数据
x1 = np.linspace(0, 10, 100)
y1 = np.sin(x1)
x2 = np.linspace(-2, 12, 100)
y2 = np.cos(x2) * 1.5

# 1. 绘制第一个折线,获取带自动边距的x轴范围
plt.plot(x1, y1)
original_xlim = plt.xlim()  # 保存初始x轴范围(包含Matplotlib自动添加的边距)

# 2. 叠加绘制第二个折线
plt.plot(x2, y2, color='red')

# 3. 重置x轴为初始带边距的范围,y轴已自动适配所有数据
plt.xlim(original_xlim)

plt.show()

代码示例(面向对象接口,更推荐)

import matplotlib.pyplot as plt
import numpy as np

x1 = np.linspace(0, 10, 100)
y1 = np.sin(x1)
x2 = np.linspace(-2, 12, 100)
y2 = np.cos(x2) * 1.5

fig, ax = plt.subplots()
# 绘制第一个数据集并保存x轴范围
ax.plot(x1, y1)
original_xlim = ax.get_xlim()

# 叠加新数据
ax.plot(x2, y2, color='red')

# 恢复原x轴范围,y轴自动适配
ax.set_xlim(original_xlim)

plt.show()

说明

  • 第一次绘图后,Matplotlib会自动计算包含合理边距的x轴范围,用plt.xlim()或ax.get_xlim()获取这个范围,避免手动设置x1.min()和x1.max()导致的边距缺失问题。
  • 叠加新数据后,Matplotlib会自动扩展y轴范围以容纳所有数据,此时只需重置x轴为初始范围即可实现需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 01:33:12