2 つの軸を持つプロットで目盛りラベルのプロパティを変更するのに問題があります。テキストを小さくして、デフォルトとは異なるフォントにしたい。twiny() を使用してみるまで、問題なく機能する方法を見つけました。図でわかるように、2 番目の軸は目盛りの書式設定命令に応答しません。何か重要なものが欠けていますか、それとも matplotlib にバグがありますか?
Ubuntu 12.04、Python 2.7.3、matplotlib 1.1.1rc
#!/usr/bin/env python
# coding: utf-8
from matplotlib import pyplot as p
from numpy import sin, cos, arange
x = arange(0, 10, .01)
for plotnum in range(1,5):
p.subplot(2, 2, plotnum)
ax1 = p.gca()
p.plot(sin(x),x)
ax2 = p.twiny()
p.plot(cos(x)+plotnum,x, 'g--')
# Set size all tick labels
# Works for first axes (lower x-ticks) and can also change font
for tickset in [ax1.xaxis.get_major_ticks()]:
[(tick.label.set_fontsize(plotnum*4), tick.label.set_fontname('ubuntu mono')) for tick in tickset]
# Does not work for second axes (upper x-ticks)
for tickset in [ax2.xaxis.get_major_ticks()]:
[(tick.label.set_fontsize(plotnum*2), tick.label.set_fontname('ubuntu mono')) for tick in tickset]
# This works, but doesn't allow changing font
#ax2.tick_params(axis='both', which='major', labelsize=plotnum*2)
ここに画像があります:
編集:目盛りを変更する行の誤ったインデントを修正
編集:挿入された画像(Thriveth)