我正在尝试生成一个图,其中我在 x 轴和 y 轴上都有自定义轴刻度。但就像在比例尺中一样,我希望显示更精细的刻度线,而刻度线仅出现在较大的值上。如附图所示(与我想要的类似)。
所以我尝试了:
ax.tick_params(labeltop=True, labelright=True)
因为我需要所有 4 面都有刻度。然后我会做这样的事情:
ax.yaxis.set_ticks_position('both')
ax.xaxis.set_ticks_position('both')
然后指定范围:
plt.xticks(np.arange(-1.20, -0.79, 0.04))
plt.yticks(np.arange(-1.0,1.2, 0.1))
但我想要每 5 个位置(或每 5 个刻度)的数字标记
这是我的解决方案:(感谢@Diziet)
from matplotlib.ticker import (MultipleLocator, FormatStrFormatter,AutoMinorLocator)
# Plotting codes go in here
ax.yaxis.set_ticks_position('both')# Ticks on all 4 sides
ax.xaxis.set_ticks_position('both')
plt.xticks(np.arange(-1.21, -0.79, 0.04)) # Axes ranges
plt.yticks(np.arange(-0.9,0.9, 0.1))
ax.xaxis.set_major_locator(MultipleLocator(0.05)) # Intervals for major x-ticks
ax.xaxis.set_minor_locator(AutoMinorLocator()) # Minor ticks : Automatic filling based on the ytick range
ax.yaxis.set_major_locator(MultipleLocator(0.3)) # For y-ticks
ax.yaxis.set_minor_locator(AutoMinorLocator())
附件是最终产品
我是一名优秀的程序员,十分优秀!