为什么x和y轴上的刻度数不会减少到3?
import numpy as np
import matplotlib.pyplot as plt
fig,ax=plt.subplots(nrows=4,ncols=3)
for n in range(0,4):
for f in range(0,3):
ax[n,f].plot(range(10), range(10,20))
ax[n,f].locator_params(axis='x', nticks=3)
ax[n,f].locator_params(axis='y', nticks=3)
fig.savefig('not_3_ticks.png')
答案 0 :(得分:2)
这也有效:
import numpy as np
import matplotlib.pyplot as plt
fig,ax = plt.subplots(nrows=4,ncols=3)
for n in range(0,4):
for f in range(0,3):
ax[n,f].plot(range(10), range(10,20))
ax[n,f].xaxis.set_major_locator(plt.MaxNLocator(3))
ax[n,f].yaxis.set_major_locator(plt.MaxNLocator(3))
plt.plot()
plt.show()
fig.savefig('yes_3_ticks.png')
答案 1 :(得分:1)
locator_params(axis='x', nticks=3)
未按预期运行的原因是nticks
不是正在使用的matplotlib.ticker.AutoLocator
的有效参数。
通常,人们可能希望减少最大数量 当绘制小的时候,刻度并使用紧束缚 子图,例如::
ax.locator_params(tight=True, nbins=4)
因此请nticks
替换nbins
。