おねーちゃん!数学の授業で二次関数「y = x²」のグラフを書いたんだけど、手書きだと面倒だし曲線が綺麗に書けないんだよね
それで、こういうグラフをPythonで作って画像にできないかなーって思ったんだけど、そういう外部ライブラリってあるの??
もちろんあるよ!普段の何気ない作業をプログラムで出来ないかって考えられるのはとても良い傾向だね!!
え、そう??なんか照れる///
さて、そしたら葵の気分が変わらないうちに本題に入ろう!
今回紹介するのは「Matplotlib」だよ
どんな感じでグラフを作れるか教えて!
じゃあ、さっき話題に出た二次関数「y = x²」のグラフを作ってみようか
おおー!!
つまり、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」をプログラムに追加しておくだけで使えるようになるよ
ほえぇぇ
他にもグラフを複数載せたり、最大値の設定とか結構細かい設定ができるよ!
だけど、全部紹介するとキリがないから基本的な装飾だけ一覧にしておくね
| 構文 | 機能 | 例 |
|---|---|---|
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() |
