1. ホーム
  2. python

[解決済み] Pythonのサブプロットにおけるxticks

2022-11-09 18:33:22

質問

もし、1つの 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] . どうすれば plt にアクセスできますか?

どのように解決するのですか?

2つの方法があります。

  1. サブプロットオブジェクトのaxesメソッドを使用する(例えば ax.set_xticksax.set_xticklabels ) または
  2. 使用する 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()

<イグ