Matplotlibで軸のメモリ等の細かな設定

軸の線幅に引き続き, 目盛の方のプロパティを変更したい.

まず, 任意のラベルを指定する場合, pylab.xticksが使えるがAxisに対してはax.xticksだけではうまくいかない.

ax.set_xticks((1e-9, 1e-6, 1e-3))
ax.set_xticklabels((r'$1ns$', r'$1\mu s$', r'1ms'))
# ax.set_xticks((1e-9, 1e-6, 1e-3), (r'$1ns$', r'$1\mu s$', r'1ms')) # これはうまくいかない

これを応用して, 2行目をax.set_xticklables([])のようにすると, 目盛だけでラベルを消すことができる.

次に, このラベルのフォントサイズを変更したい場合は以下のようにする.

[i.set_fontsize(16) for i in ax.xaxis.get_ticklabels()]

さらに, 目盛の太さと長さを変更する場合は,

for i in ax.xaxis.get_ticklines():
    i.set_markersize(8)
    i.set_markeredgewidth(3)

などのようにする. 当然, Y軸もax.yaxisとすればいける. ログスケールで表示した場合, 細かい方の目盛がうまくこれで変えられないのが今困っているところ.