Matplotlib
今回は漢字間違い探しクイズのプログラムを作成していた時に出てきたグラフの枠線や軸のラベルを消す方法に関して解説していきます。
それではまずは基本のプログラムから。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
fig = plt.figure()
plt.clf()
plt.plot(x, y)
plt.show()
実行結果
こんな感じで何の変哲もないただの直線グラフを作成してみました。
枠線を消す方法
それでは枠線を消す方法から見ていきましょう。
枠線を消すには「plt.gca().spines[‘枠線の場所’].set_visible(False)」です。
枠線の場所は「right(右)」「top(上)」「left(左)」「bottom(下)」のどれかを入力します。
とりあえず全部消してみるとこんな感じになります。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
fig = plt.figure()
plt.clf()
plt.plot(x, y)
plt.gca().spines['right'].set_visible(False)
plt.gca().spines['top'].set_visible(False)
plt.gca().spines['bottom'].set_visible(False)
plt.gca().spines['left'].set_visible(False)
plt.show()
実行結果
ただ枠線を全部消してしまうのはなかなかないことでしょう。
よくあるのは右と上を消したグラフなので、ちょっと試してみましょう。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
fig = plt.figure()
plt.clf()
plt.plot(x, y)
plt.gca().spines['right'].set_visible(False)
plt.gca().spines['top'].set_visible(False)
plt.show()
実行結果
なかなかスッキリしたグラフになりました。
軸のラベルを消す方法
次に軸のラベルを消す方法を見ていきます。
軸のラベルを消すには「tick_params」のオプションに下なら「labelbottom=False」、左なら「labelleft=False」、右なら「labelright=False」、上なら「labeltop=False」を追加します。
とりあえず全部消してみるとこんな感じです。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
fig = plt.figure()
plt.clf()
plt.plot(x, y)
plt.tick_params(labelbottom=False, labelleft=False, labelright=False, labeltop=False)
plt.show()
ラベルは消えましたが、ラベルの場所を示す補助線は残ってしまいました。
ということで次はこの補助線を消す方法です。
目盛りを消す方法
目盛りを消すには、軸のラベルを消すのと同様「tick_params」のオプションに下なら「bottom=False」、左なら「left=False」、右なら「right=False」上なら「top=False」を追加します。
とりあえず目盛りを全て消してみましょう。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
fig = plt.figure()
plt.clf()
plt.plot(x, y)
plt.tick_params(bottom=False, left=False, right=False, top=False)
plt.show()
実行結果
軸のラベルも目盛りも「tick_params」で設定するので、一括で設定してみるとこんな感じです。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
fig = plt.figure()
plt.clf()
plt.plot(x, y)
plt.tick_params(labelbottom=False, labelleft=False, labelright=False, labeltop=False, bottom=False, left=False, right=False, top=False)
plt.show()
実行結果
枠、軸、ラベル、目盛りを全て消す方法
ということで枠と軸、ラベル、目盛りを全て消してみるとこんな感じになります。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
fig = plt.figure()
plt.clf()
plt.plot(x, y)
plt.gca().spines['right'].set_visible(False)
plt.gca().spines['top'].set_visible(False)
plt.gca().spines['bottom'].set_visible(False)
plt.gca().spines['left'].set_visible(False)
plt.tick_params(labelbottom=False, labelleft=False, labelright=False, labeltop=False, bottom=False, left=False, right=False, top=False)
plt.show()
実行結果
ただもし全て消したいのであればもっと簡単に「plt.gca().axis(‘off’)」とするだけで枠、軸、ラベル、目盛りの全てを消すことができます。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
fig = plt.figure()
plt.clf()
plt.plot(x, y)
plt.gca().axis('off')
plt.show()
実行結果
なかなかグラフとしては枠線や軸のラベル、目盛りを消すことはないと思いますが、知っておいて損はないことでしょう。
ではでは今回はこんな感じで。
コメント