2

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 軸のように、各 10 年の間に標準の 8 ティックを使用して、10 年ごとに主要なラベルを付けたいと思います。さらに、軸が乱雑にならないように、x 軸のラベル付けを現状のままにしておくことが理想的です。つまり、10^3、10^5、10^7、10^9 をそのままラベル付けしたいのです。メジャー/マイナーティックをその間のすべての数十年に拡張したいだけです。

前もって感謝します。また、参考になる場合は、matplotlib バージョン 2.0.0 を使用しています。2.0.0 にのみある追加機能のために、(古いバージョンではなく) このバージョンを使用する必要があります。

4

1 に答える 1