我正在尝试在 Matplotlib 中制作一个涵盖数十年的对数图。但是,返回给我的默认 x 轴刻度远非理想,因为它们一次覆盖 20 个刻度,中间只有 4 个刻度标记。我正在使用的代码如下:
rc('text', usetex=True)
f,ax=plt.subplots(figsize=(10,8))
plt.xscale('log')
plt.yscale('log')
plt.ylim([1e26,1e29])
plt.xlim([20,1e10])
plt.xlabel(r'x',fontsize=22)
plt.ylabel(r'y',fontsize=22)
plt.tick_params(axis='both', which='major', labelsize=22,length=9,direction='in')
plt.tick_params(axis='both', which='minor', labelsize=22,length=5,direction='in')
ax.yaxis.set_tick_params(right='on',which='both')
ax.xaxis.set_tick_params(top='on',which='both')
plt.savefig('example.pdf',bbox_inches='tight')
返回给我的图像如下所示:
如您所见,主要 x 轴标签从 10^3 到 10^5 等。另一方面,主要标签之间只有 4 个次要 x 轴标签。我希望每十年有一个主要标签,就像在 y 轴上一样,每十年之间有标准的 8 个刻度。此外,理想情况下,我希望 x 轴上的标签保持原样,以使轴不会太杂乱。也就是说,我希望将 10^3、10^5、10^7、10^9 标记为现在的样子。我只想将主要/次要刻度扩展到其间的所有十年。
提前致谢。另外,如果有帮助,我使用的是 matplotlib 2.0.0 版。我需要使用这个版本(而不是旧版本)来获得仅在 2.0.0 中的附加功能。