複数のグラフの操作

画像3

〇タイトル・軸ラベルの追加

〇タイトルの追加

axesオブジェクトを代入した変数.set_title(グラフのタイトル)

〇軸ラベルの追加

axesオブジェクトを代入した変数.set_xlabel(横軸のラベル名)
axesオブジェクトを代入した変数.set_ylabel(縦軸のラベル名)


※pyplotモジュールを使う場合と、axesオブジェクト関数を使う場合では、同じ操作でも関数名が異なる。

plt.title(グラフのタイトル)
・axesオブジェクトを代入した変数.set_title(グラフのタイトル)

・plt.xlabel(横軸のラベル名)
・axesオブジェクトを代入した変数.set_xlabel(横軸のラベル名)

※タイトルと横軸、縦軸のラベルは、set()関数でまとめて追加することもできます。

axesオブジェクトを代入した変数.set(title=グラフのタイトル, xlabel=横軸のラベル名, ylabel=縦軸のラベル名)


例)

# matplotlib.pyplotのインポート
import matplotlib.pyplot as plt

# numpyのインポート
import numpy as np

# データの作成
x = np.array([1,2,3,4,5,6,7,8,9,10])
y1 = x
y2 = x ** 2

# figureオブジェクトとaxesオブジェクトの作成
fig, ax = plt.subplots(1, 2, figsize=(8, 3))

# 1次関数グラフの作成
ax[0].plot(x, y1)
ax[0].set(title="1次関数", xlabel="X", ylabel="Y")

# 2次関数グラフの作成
ax[1].plot(x, y2)
ax[1].set(title="2次関数", xlabel="X", ylabel="Y")

# グラフの表示
plt.show()

画像1



〇凡例の追加

axesオブジェクトを代入した変数.plot(横軸のデータ, 縦軸のデータ, label="ラベル名")
axesオブジェクトを代入した変数.legend()

※matplotlibでは、文字列を記号$で囲むことで数式を表現できる。


〇図の全体のタイトルの追加

figureオブジェクトが代入された変数.suptitle(図全体のタイトル)

画像2



〇余白の調整

figureオブジェクトが代入された変数.subplots_adjust()

画像4


〇軸の共有

複数のグラフを並べる場合は、横軸や縦軸の表示領域(上限値・下限値)を統一しておくと比較がしやすくなる。

plt.subplots(行数, 列数, sharex=True, sharey=True)

左右に並んだグラフで縦軸を共有した場合、一番左側のグラフにのみ縦軸の目盛りが表示され、その他のグラフの縦軸の目盛りは非表示となります。同様に、上下に並んだグラフで横軸を共有した場合、一番上側のグラフにのみ横軸の目盛りが表示され、その他のグラフの横軸の目盛りは非表示となります。



〇枠線と目盛の非表示化

画像5

#枠線の非表示化
axesオブジェクトが代入された変数.xaxis.set_visible(False)  # 横軸の目盛り
axesオブジェクトが代入された変数.yaxis.set_visible(False)  # 縦軸の目盛り

#目盛の非表示化
axesオブジェクトが代入された変数.spines["right"].set_visible(False)  # 右の枠線
axesオブジェクトが代入された変数.spines["left"].set_visible(False)   # 左の枠線
axesオブジェクトが代入された変数.spines["top"].set_visible(False)    # 上の枠線
axesオブジェクトが代入された変数.spines["bottom"].set_visible(False) # 下の枠線


〇全ての枠線と目盛りを全て消したい場合

axesオブジェクトが代入された変数.axis("off") 






この記事が気に入ったらサポートをしてみませんか?