単一のimshow
プロットをプロットする場合、使用できます
fig, ax = plt.subplots()
ax.imshow(data)
plt.xticks( [4, 14, 24], [5, 15, 25] )
xtickラベルを置き換える。
今、私は12 imshow
プロットを使用してプロットしています
f, axarr = plt.subplots(4, 3)
axarr[i, j].imshow(data)
これらのサブプロットの1つだけでxticksを変更するにはどうすればよいですか? axarr[i, j]
でのみサブプロットの軸にアクセスできます。特定の1つのサブプロットだけでplt
にアクセスするにはどうすればよいですか?
2つの方法があります。
ax.set_xticks
およびax.set_xticklabels
)またはplt.sca
を使用して、pyplotステートマシン(つまり、plt
インターフェイス)の現在の軸を設定します。例として(これはsetp
を使用してすべてのサブプロットのプロパティを変更することも示しています):
import matplotlib.pyplot as plt
fig, axes = plt.subplots(nrows=3, ncols=4)
# Set the ticks and ticklabels for all axes
plt.setp(axes, xticks=[0.1, 0.5, 0.9], xticklabels=['a', 'b', 'c'],
yticks=[1, 2, 3])
# Use the pyplot interface to change just one subplot...
plt.sca(axes[1, 1])
plt.xticks(range(3), ['A', 'Big', 'Cat'], color='red')
fig.tight_layout()
plt.show()
Matplotlibリポジトリの(非常に)最近の answer を参照してください。次の解決策が提案されています。
Xticklabelsを設定する場合:
ax.set_xticks([1,4,5])
ax.set_xticklabels([1,4,5], fontsize=12)
デフォルトの値と場所を使用して、xticklabelsのフォントサイズのみを大きくしたい場合(これは私が個人的によく必要とし、非常に便利だと思うものです):
ax.tick_params(axis="x", labelsize=12)
すべてを一度に行うには:
plt.setp(ax.get_xticklabels(), fontsize=12, fontweight="bold",
horizontalalignment="left")`
Matplotlibの新しいバージョンのように、set_yticks
およびset_xticks
関数が削除されたようです。私がやったことは、x、yティックのサイズを設定する代わりに、フィギュアのサイズを変更しただけです。
plt.figure(1, dpi=200, figsize=(20,20))
私はそれがちょっと直感に反していることを知っていますが、それは私のために働いたものです... Matplotlibの以降のバージョンでこの問題を解決するためのより良い方法があれば教えてください。ありがとう