タイトル画像
琴葉葵

おねーちゃん!数学の授業で二次関数「y = x²」のグラフを書いたんだけど、手書きだと面倒だし曲線が綺麗に書けないんだよね

琴葉葵

それで、こういうグラフをPythonで作って画像にできないかなーって思ったんだけど、そういう外部ライブラリってあるの??

琴葉茜

もちろんあるよ!普段の何気ない作業をプログラムで出来ないかって考えられるのはとても良い傾向だね!!

琴葉葵

え、そう??なんか照れる///

琴葉茜

さて、そしたら葵の気分が変わらないうちに本題に入ろう!
今回紹介するのは「Matplotlib」だよ

解説画像1
琴葉葵

どんな感じでグラフを作れるか教えて!

琴葉茜

じゃあ、さっき話題に出た二次関数「y = x²」のグラフを作ってみようか

解説画像2
琴葉葵

おおー!!
つまり、x軸とy軸それぞれのデータを持った配列を用意してあげれば良いんだね!

琴葉茜

ちなみに、今回は折れ線グラフにしてるけど、他にも色んなグラフが同じ流れで作れるよ

構文グラフの種類
plt.plot(x, y)
折れ線グラフ
plt.plot([1, 2, 3], [3, 1, 4])
plt.bar(x, y)
棒グラフ
plt.bar(["A", "B"], [5, 3])
plt.scatter(x, y)
散布図
plt.scatter([1, 2], [3, 4])
plt.hist(data)
ヒストグラム
plt.hist([1, 2, 2, 3])
plt.pie(data)
円グラフ
plt.pie([30, 70])
plt.fill_between(x, y1)
塗りつぶしグラフ
plt.fill_between(x, y)
plt.step(x, y)
ステップグラフ
plt.step([1, 2, 3], [3, 1, 4])
琴葉葵

おおー
でも、このままだと横軸と縦軸が何なのか分からないし、シンプルすぎない?

琴葉茜

それについてはグラフに凡例(説明を表示するラベル)や補助線を追加したりも出来るから大丈夫だよ!

琴葉茜

ちなみにMatplotlibだけだと日本語が使えないけど、事前に「pip install japanize-matplotlib」をして「import japanize_matplotlib」をプログラムに追加しておくだけで使えるようになるよ

解説画像2
琴葉葵

ほえぇぇ

琴葉茜

他にもグラフを複数載せたり、最大値の設定とか結構細かい設定ができるよ!
だけど、全部紹介するとキリがないから基本的な装飾だけ一覧にしておくね

構文機能
plt.title("タイトル")
グラフ全体のタイトルをつける
plt.title("得点の推移")
plt.xlabel("ラベル")
X軸にラベルをつける
plt.xlabel("時間")
plt.ylabel("ラベル")
Y軸にラベルをつける
plt.ylabel("得点")
plt.xlim(min, max)
X軸の範囲を設定
plt.xlim(0, 10)
plt.ylim(min, max)
Y軸の範囲を設定
plt.ylim(0, 100)
plt.xticks([...])
X軸の目盛りを指定
plt.xticks([0, 1, 2])
plt.yticks([...])
Y軸の目盛りを指定
plt.yticks([0, 50, 100])
plt.legend()
凡例(ラベル)を表示
plt.legend()
plt.grid(True)
グリッド線を表示
plt.grid(True)
plt.text(x, y, "文字")
任意の場所にテキストを表示
plt.text(2, 50, "ここがポイント")
plt.savefig("ファイル名.png")
グラフを画像ファイルとして保存
plt.savefig("graph.png")
plt.show()
グラフを表示
plt.show()