YutaKaのPython教室

Python の文法やライブラリ、API、環境構築について画像・動画・ソースコード付きで徹底解説!

matplotlib | pyplotで基本的なグラフを簡単に作れるようになるには?

pythonのプロット作成ライブラリといえば、matplotlibが有名ですね。

コマンドでグラフを作れる便利なライブラリですが、初めての人にとってはコマンドでグラフを作るのって大変ですよね…

そこで今回は、matplotlibで二次元のグラフ作成する方法について紹介します。

公式ドキュメントを参考にしているので、興味のある方はそちらもチェックしてみてくださいね。

f:id:YutaKa:20191212222726p:plain

はじめに

matplotlibの中には、いくつかモジュールがあります。その中で、二次元のグラフを作成するためには、matplotlib.pyploytを使用します。

pyplotは、一行ずつコマンドを実行しながらグラフを作成することができるモジュールです。

そのため、jupyter notebookのように対話型環境と相性がいいと思います。

簡単なグラフを作る

matplotlibでの基本的なグラフ作成の手順は次の通りです。

基本的な流れ

① matplotlib.pyplotのインポート
② グラフにする変数の用意
③ グラフを作成

簡単な2次関数を例にして、この手順を解説していきます!

matplotlib.pyplotのインポート

pyplotを使う場合は、pltという名前でインポートすることが多いようです。

import matplotlib.pyplot as plt


実はこれだけだと、Jupyter Notebookを使用した場合に、グラフが表示されない場合があります。

Note!

Jupyter notbook を使用している場合には、
インポートと一緒にマジックコマンドを入力するクセをつけましょう!

マジックコマンド %matplotlib inline で、ノートの中でグラフを表示できるようになります!

%matplotlib inline
import
matplotlib.pyplot as plt

グラフにする変数の用意

簡単のためにリストで、 x と y の値を 用意してます。

y は リスト内包表記で、y = x**2 としています。

x = [0, 1, 2, 3, 4, 5]
y = [val**2 for val in x]

グラフを作成

グラフを作る際には、pyplotモジュールのplot()メソッドを使用します。

plt.plot(x, y)


出力結果はこちらです。デフォルトでは、青色の線グラフになります。

f:id:YutaKa:20191212220715p:plain

plot()メソッドに x と y を渡せば、とりあえずはグラフ化してくれました!

グラフを見やすくする

タイトルや軸ラベルを追加したり、線やプロットの見た目を変更して、グラフを見やすくします。

タイトル、軸ラベルを追加

タイトルや軸ラベルを追加する場合も、pyplotのメソッドを使用します。

plt.suptitle("quadratic function")
plt.xlabel('x-axis')
plt.ylabel('y-axis')
plt.plot(x, y)


出力結果はこちらです。

f:id:YutaKa:20191213220144p:plain
タイトルや軸が追加されました。

Note!

Jupyter notbook を使用している場合には、

plot()メソッドと同じセル内でタイトルやラベルを宣言しましょう!

★別のセルでタイトルやラベルを宣言しても反映されませんでした!

 悪い例:plot()の実行とタイトル、ラベルの宣言を別のセルで行っている。

f:id:YutaKa:20191213223516p:plain

これだと何度試しても、タイトルと軸ラベルがグラフに反映されませんでした…

グラフの見た目を変更

グラフの色、線の種類、プロットの種類を変更してみます。

plot()メソッドの引数に、fmt文字列を渡します。

fmt = "[marker][line][color]"
plt.plot(x, y, fmt)


[marker][line][color]の部分には、既定のキーワードを与えます。どれか一つでも指定すればOKです。

例えば、赤なら"r"、破線なら"--"、丸プロットなら"o"です。

これは実際に実行結果を見てみるとわかりやすいです。

例①: [color]を指定して、グラフの色を変更

plt.plot(x, y, "r")


"r"で、を指定できます。

f:id:YutaKa:20191214134344p:plain

例②:[line][color]を指定して、線の種類とグラフの色を変更

plt.plot(x, y, "--g")


"--"で破線、"g"でをそれぞれ指定しています。

f:id:YutaKa:20191214135357p:plain

例③:[marker][line][color]を指定して、プロットと線の種類、グラフの色を変更

plt.plot(x, y, "o:k")


"o"で丸プロット、":"で点線、"k"で黒をそれぞれ指定しています。

f:id:YutaKa:20191214135548p:plain

黒(black)が"b"ではなく "k" なのは、 青(blue)と被ってしまうからでしょうね。

 

公式ドキュメントによれば、[marker][line][color]は、[color][marker][line]のように順番をかえてもサポートされるとのことです。

ただし、解析があいまいになるかも…とも書いてあるので、できるだけ順番は守った方が無難ではありそうですが…。公式のチュートリアルでも順番があまり守られていないんですが…笑

まとめ

基本的な流れ

① matplotlib.pyplotのインポート
② グラフにする変数の用意
③ グラフを作成
 ★タイトルや軸ラベルはメソッドで追加!
 ★グラフの見た目はfmtで変更!

いかがでしたか?

コマンドラインでグラフを作成することに初めは抵抗があるかもしれませんが、
一度覚えてしまえば、とても簡単ですね!?

今後、1つの図に2つのグラフを作成する方法や、凡例をつける方法など、役立つ情報をまとめていこうと思います!