我正在試圖製作一個包含Matplotlib中幾十年的對數座標圖。但是,返回給我的默認x軸刻度並不理想,因爲它們一次只能覆蓋二十年,其間只有四個刻度線。我使用的代碼如下:Matplotlib:對數座標圖中奇怪的雙十年軸座標系
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版本中的其他功能。