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

Python Matplotlib子图x轴刻度间隔过大 如何设置1步进显示0-5刻度

解决方法

方法1:直接手动指定X轴刻度(最简便,适合固定范围场景)

你只需要在每个子图的配置代码中,加入set_xticks方法指定要显示的刻度值即可,示例如下:

# 给ax1添加设置
ax1.set_xticks(np.arange(0, 6, 1))
# 给ax2添加设置
ax2.set_xticks(np.arange(0, 6, 1))

np.arange(0,6,1)会生成[0,1,2,3,4,5]的刻度序列,刚好匹配你需要的0到5间隔1的显示需求。

方法2:使用刻度定位器自动按间隔生成(适合范围可变的灵活场景)

如果后续你的X轴范围可能调整,不想每次手动修改刻度列表,可以用MultipleLocator指定刻度间隔:
首先导入对应模块:

import matplotlib.ticker as ticker

然后在每个子图配置中添加:

# 设置X轴主刻度间隔为1
ax1.xaxis.set_major_locator(ticker.MultipleLocator(1))
ax2.xaxis.set_major_locator(ticker.MultipleLocator(1))

这种方法会自动根据你X轴的数值范围,按间隔1生成所有刻度,不需要手动指定起止值。


修改后的完整代码示例

import matplotlib.pyplot as plt
import numpy as np

delta = 0.0001
t = np.arange(0,5+delta,delta)
xt = np.sin(np.pi*t)

fig = plt.figure(1)

ax1= plt.subplot(3,2,1)
ax1.plot(t,xt, "tab:red")
ax1.set(ylabel = "Amplitude")
ax1.set(xlabel = 'Time(s)')
ax1.set(title = 'for n = 1')
ax1.grid()
# 新增X轴刻度设置
ax1.set_xticks(np.arange(0, 6, 1))

ax2 = plt.subplot(3,2,2)
ax2.plot(t,xt, "tab:green")
ax2.set(ylabel = "Amplitude")
ax2.set(xlabel = 'Time(s)')
ax2.set(title = 'for n = 2')
ax2.grid()
# 新增X轴刻度设置
ax2.set_xticks(np.arange(0, 6, 1))

plt.tight_layout()
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 07:48:03