Matplotlib - 设置特定子图的刻度位置

2 投票
1 回答
943 浏览
提问于 2025-04-18 12:20

我正在尝试做这样的事情:

vol_grid = MultipleLocator(1000)
fig_vol = plt.subplot2grid((count, count), (i, 0), rowspan=1, colspan=count)
fig_vol.yaxis.set_major_locator(vol_grid)

但是没有任何效果。有什么想法吗?

我的目的是让y轴上的标签相隔1000个单位,也就是说,标签应该是1000、2000、3000等等。

1 个回答

1

你还没有画任何东西,这就是为什么刻度标签不显示的原因(ylim 默认是 (0,1),你可以设置 vol_grid = MultipleLocator(0.1) 来查看效果)

from matplotlib.ticker import MultipleLocator
import matplotlib.pyplot as plt
vol_grid = MultipleLocator(1000)
fig_vol = plt.subplot2grid((2, 2), (0, 0), rowspan=1, colspan=2)
fig_vol.yaxis.set_major_locator(vol_grid)

enter image description here

我们可以改变 ylim 的范围,或者直接画一些数据:

fig_vol.set_ylim(1000, 9000)
#plt.plot([1,2,3], [1000, 2000, 5000])

enter image description here

撰写回答