首页 > 解决方案 > 如何使用 matplotlib 以对数刻度设置固定的主要抽动

问题描述

我试图在带有倒对数刻度的绘图的 y 轴上放置一些抽动。特别是,我想标记 1000、900、800... 等值。

这是我正在使用的代码:

import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
from matplotlib import rcParams
rcParams.update({'figure.autolayout': True})

%matplotlib nbagg


fig, ax = plt.subplots(figsize = (8,4))

ax.set_ylim(200,1000)
ax.set_xlim(-60,40)
plt.gca().invert_yaxis()

ax.set_yscale('log')
majors = np.array([1000, 900, 800, 700, 600, 500, 400, 300, 200])

ax.yaxis.set_major_locator(ticker.FixedLocator(majors))
ax.yaxis.set_major_formatter(ticker.ScalarFormater())

ax.xaxis.set_major_locator(ticker.MultipleLocator(10))
ax.xaxis.set_minor_locator(ticker.MultipleLocator(1))

plt.xlabel('Temp (ºC)')
plt.ylabel('Pressure (hPa)')


plt.savefig(fname='test.png', dpi = 200)
plt.close()

这是我得到的数字:在此处输入图像描述

如您所见,y 轴上的抽动是默认放置的,而不是我想要的。我的电话ax.yaxis.set_major_locator(ticker.FixedLocator(majors))似乎被忽略了。我在这里做错了什么?

标签: pythonmatplotlib

解决方案


推荐阅读