複数のグラフの操作
〇タイトル・軸ラベルの追加
〇タイトルの追加
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()
〇凡例の追加
axesオブジェクトを代入した変数.plot(横軸のデータ, 縦軸のデータ, label="ラベル名")
axesオブジェクトを代入した変数.legend()
※matplotlibでは、文字列を記号$で囲むことで数式を表現できる。
〇図の全体のタイトルの追加
figureオブジェクトが代入された変数.suptitle(図全体のタイトル)
〇余白の調整
figureオブジェクトが代入された変数.subplots_adjust()
〇軸の共有
複数のグラフを並べる場合は、横軸や縦軸の表示領域(上限値・下限値)を統一しておくと比較がしやすくなる。
plt.subplots(行数, 列数, sharex=True, sharey=True)
左右に並んだグラフで縦軸を共有した場合、一番左側のグラフにのみ縦軸の目盛りが表示され、その他のグラフの縦軸の目盛りは非表示となります。同様に、上下に並んだグラフで横軸を共有した場合、一番上側のグラフにのみ横軸の目盛りが表示され、その他のグラフの横軸の目盛りは非表示となります。
〇枠線と目盛の非表示化
#枠線の非表示化
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")
この記事が気に入ったらサポートをしてみませんか?