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

matplotlib设置0-1刻度后范围内数值绘制在图外的问题如何解决

问题原因

你仅设置了坐标轴的刻度位置,没有限制坐标轴的显示范围,matplotlib默认会根据输入数据的范围自动调整视口。如果你的数据没有覆盖0-1的完整区间,默认视口范围会小于0-1,你提前设置的0、1等刻度就会出现在视口外,数据也会显示错位。
另外要注意你提供的数据每行第一个值为Y、第二个为X,调用plot方法时第一个参数要传X值、第二个传Y值,不要搞反顺序。

解决代码

import matplotlib.pyplot as plt
import numpy as np

# 读取XY数据,第一列为Y,第二列为X
data = np.array([
    [1.0, 0.06], [1.0, 0.09], [1.0, 0.12], [1.0, 0.16], [1.0, 0.19],
    [1.0, 0.22], [1.0, 0.25], [1.0, 0.28], [1.0, 0.31], [1.0, 0.34],
    [1.0, 0.38], [1.0, 0.41], [1.0, 0.44], [1.0, 0.47], [1.0, 0.5],
    [1.0, 0.53], [1.0, 0.56], [0.95, 0.56], [0.95, 0.59], [0.95, 0.62],
    [0.95, 0.66], [0.96, 0.69], [0.96, 0.72], [0.96, 0.75], [0.96, 0.78],
    [0.93, 0.78], [0.93, 0.81], [0.93, 0.84], [0.93, 0.88], [0.94, 0.91],
    [0.94, 0.94], [0.91, 0.94]
])
x = data[:, 1]
y = data[:, 0]

fig, ax = plt.subplots()
ax.grid()

# 设置刻度步长为0.1
ax.set_xticks(np.arange(0, 1.1, 0.1))
ax.set_yticks(np.arange(0, 1.1, 0.1))
# 强制锁定XY轴显示范围为0到1,核心修复代码
ax.set_xlim(0, 1)
ax.set_ylim(0, 1)

ax.plot(x, y)
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 20:27:05