1. ホーム
  2. python

[解決済み] matplotlib のプロットで軸のテキストを非表示にする

2022-03-22 01:45:21

質問

軸に目印や番号のない図を描こうとしています (私は matplotlib の命名法ではなく、伝統的な意味で軸を使用しています!)。私が遭遇した問題は、matplotlib が値 N を引くことによって x(y) の目盛りを調整し、軸の端に N を追加することです。

漠然としているかもしれませんが、次の簡略化した例では、問題のあるNの値が「6.18」であることを強調しています。

import matplotlib.pyplot as plt
import random
prefix = 6.18

rx = [prefix+(0.001*random.random()) for i in arange(100)]
ry = [prefix+(0.001*random.random()) for i in arange(100)]
plt.plot(rx,ry,'ko')

frame1 = plt.gca()
for xlabel_i in frame1.axes.get_xticklabels():
    xlabel_i.set_visible(False)
    xlabel_i.set_fontsize(0.0)
for xlabel_i in frame1.axes.get_yticklabels():
    xlabel_i.set_fontsize(0.0)
    xlabel_i.set_visible(False)
for tick in frame1.axes.get_xticklines():
    tick.set_visible(False)
for tick in frame1.axes.get_yticklines():
    tick.set_visible(False)

plt.show()

知りたいことは3つです。

  1. そもそもこの動作をオフにする方法(ほとんどの場合、便利なのですが、いつもそうとは限りません!) 私が目を通したのは matplotlib.axis.XAxis というメッセージが表示され、適切なものが見つかりません。

  2. どうすればNを消すことができるのでしょうか(つまり X.set_visible(False) )

  3. とにかく上記のような良い方法はないでしょうか?私の最終プロットは4x4のサブプロットを図にする予定です。

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

各要素を非表示にするのではなく、軸全体を非表示にすることができます。

frame1.axes.get_xaxis().set_visible(False)
frame1.axes.get_yaxis().set_visible(False)

あるいは、ティックを空リストに設定することもできます。

frame1.axes.get_xaxis().set_ticks([])
frame1.axes.get_yaxis().set_ticks([])

この2番目のオプションでは、まだ plt.xlabel()plt.ylabel() をクリックして、軸にラベルを追加してください。