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

Matplotlib如何设置不同间隔xticks并指定X轴刻度范围

问题根因

调用plt.plot()时如果只传入一维数值序列,Matplotlib会默认用序列的索引下标作为X轴坐标。传入的1/(np.arange(0.1,3,0.1))一共包含29个数值,对应下标范围是0~28,因此默认X轴显示0到28的刻度。
直接运行plt.xticks([0,1,2])时,实际是在下标0、1、2(即序列前三个点)的位置打刻度,会出现刻度全挤在图最左侧的异常效果,和预期的0~3数值X轴不匹配。

默认输出示例图
设置后异常输出图

正确实现方案

最稳妥的方式是绘图时显式传入X轴的数值序列,不要依赖默认的索引坐标:

import numpy as np
import matplotlib.pyplot as plt

# 定义X轴取值序列
x = np.arange(0.1, 3, 0.1)
y = 1 / x
# 绘图时同时传入x、y坐标
plt.plot(x, y)
# 设置X轴显示范围为0到3
plt.xlim(left=0, right=3)
# 按需设置X轴刻度,比如间隔1就传[0,1,2,3],需要其他间隔/非均匀刻度直接修改列表内容即可
plt.xticks([0, 1, 2, 3])

plt.show()

不推荐用硬改刻度标签的方式凑效果:这种方式本质是把索引位置的显示文本改成目标数值,X轴实际坐标范围还是0~28,后续添加标注、做交互选点时很容易出现坐标错位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 17:15:44