pythonのプロット作成ライブラリといえば、matplotlibが有名ですね。
コマンドでグラフを作れる便利なライブラリですが、初めての人にとってはコマンドでグラフを作るのって大変ですよね…
そこで今回は、matplotlibで二次元のグラフ作成する方法について紹介します。
公式ドキュメントを参考にしているので、興味のある方はそちらもチェックしてみてくださいね。
はじめに
matplotlibの中には、いくつかモジュールがあります。その中で、二次元のグラフを作成するためには、matplotlib.pyploytを使用します。
pyplotは、一行ずつコマンドを実行しながらグラフを作成することができるモジュールです。
そのため、jupyter notebookのように対話型環境と相性がいいと思います。
簡単なグラフを作る
matplotlibでの基本的なグラフ作成の手順は次の通りです。
① matplotlib.pyplotのインポート
② グラフにする変数の用意
③ グラフを作成
簡単な2次関数を例にして、この手順を解説していきます!
matplotlib.pyplotのインポート
pyplotを使う場合は、pltという名前でインポートすることが多いようです。
import matplotlib.pyplot as plt
実はこれだけだと、Jupyter Notebookを使用した場合に、グラフが表示されない場合があります。
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)
出力結果はこちらです。デフォルトでは、青色の線グラフになります。
plot()メソッドに x と y を渡せば、とりあえずはグラフ化してくれました!
グラフを見やすくする
タイトル、軸ラベルを追加
plt.suptitle("quadratic function") plt.xlabel('x-axis') plt.ylabel('y-axis') plt.plot(x, y)
出力結果はこちらです。
タイトルや軸が追加されました。
Jupyter notbook を使用している場合には、
★plot()メソッドと同じセル内でタイトルやラベルを宣言しましょう!
★別のセルでタイトルやラベルを宣言しても反映されませんでした!
悪い例:plot()の実行とタイトル、ラベルの宣言を別のセルで行っている。
これだと何度試しても、タイトルと軸ラベルがグラフに反映されませんでした…
グラフの見た目を変更
グラフの色、線の種類、プロットの種類を変更してみます。
plot()メソッドの引数に、fmt文字列を渡します。
fmt = "[marker][line][color]"
plt.plot(x, y, fmt)
[marker][line][color]の部分には、既定のキーワードを与えます。どれか一つでも指定すればOKです。
例えば、赤なら"r"、破線なら"--"、丸プロットなら"o"です。
これは実際に実行結果を見てみるとわかりやすいです。
例①: [color]を指定して、グラフの色を変更
plt.plot(x, y, "r")
"r"で、赤を指定できます。
例②:[line][color]を指定して、線の種類とグラフの色を変更
plt.plot(x, y, "--g")
"--"で破線、"g"で緑をそれぞれ指定しています。
例③:[marker][line][color]を指定して、プロットと線の種類、グラフの色を変更
plt.plot(x, y, "o:k")
"o"で丸プロット、":"で点線、"k"で黒をそれぞれ指定しています。
黒(black)が"b"ではなく "k" なのは、 青(blue)と被ってしまうからでしょうね。
公式ドキュメントによれば、[marker][line][color]は、[color][marker][line]のように順番をかえてもサポートされるとのことです。
ただし、解析があいまいになるかも…とも書いてあるので、できるだけ順番は守った方が無難ではありそうですが…。公式のチュートリアルでも順番があまり守られていないんですが…笑
まとめ
① matplotlib.pyplotのインポート
② グラフにする変数の用意
③ グラフを作成
★タイトルや軸ラベルはメソッドで追加!
★グラフの見た目はfmtで変更!
いかがでしたか?
コマンドラインでグラフを作成することに初めは抵抗があるかもしれませんが、
一度覚えてしまえば、とても簡単ですね!?
今後、1つの図に2つのグラフを作成する方法や、凡例をつける方法など、役立つ情報をまとめていこうと思います!