初心者のためのpython入門

自分がつまづいたところやつまづきやすいところを中心に書いていきます。また、役に立つライブラリの紹介などをしていきます。

matplotlib

前書き

長い期間、更新をサボっていました。申し訳ないです。時間ができたので、更新していきたいと思います。
今回は、matplotlibについて説明します。

matplotlibとは

matplotlibとはグラフを描くためのライブラリです。このライブラリをマスターすることにより、Pythonで好きなグラフを描くことができるようになります。今回の説明ではmatplotlibのモジュールの1つであるpyplotについて説明します。pyplotが使用できるようになればほとんどのグラフを可視化することができます。pyplotの使い方は、とてもシンプルなのですぐに慣れると思います。

インストール

インストールは、次のコマンドを実行することによりできます。
pip install matplotlib

まずは基本

まずは基本的なグラフの描画です。 サンプルを見ましょう。

# graph.py
import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0, 10)
y = x * 2

plt.plot(x, y) # x軸の要素, y軸の要素
plt.title('sample plot') # タイトル
plt.xlabel('x') # x軸ラベル
plt.ylabel('y') # y軸ラベル
plt.grid() # グリッド線
plt.show()

上記のコードを実行すると以下のグラフが表示されます。コードの説明は、コード中のコメントに書いてある通りです。

f:id:tiginkgo:20180306191746p:plain

もう少し凝ったグラフ

次は複数のデータを描画します。また、データに対する凡例もつけましょう。

# graph2.py
import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0, 10)
y = x

plt.plot(x, y,     color='red',   marker='o', linestyle='-',  label='y=x') # colorは色, markerはマーカー, labelは凡例の表示に必要
plt.plot(x, y * 2, color='blue',  marker='x', linestyle='--', label='y=2x')
plt.plot(x, y * 3, color='green', marker='s', linestyle=':',  label='y=3x')
plt.title('sample plot')
plt.xlabel('x')
plt.ylabel('y')
plt.xlim(-1, 11) # x軸の表示範囲
plt.ylim(-1, 31) # y軸の表示範囲
plt.grid()
plt.legend(loc='upper left') # 凡例の表示, loc引数で表示位置を指定
plt.show()

上記のコードを実行すると以下のグラフが表示されます。plotには様々な引数があり、それらを指定することでグラフの表示を変化させることができます。以下のリンクにより詳しい引数の設定などが乗っているので興味があれば見てください。

matplotlib公式ドキュメント(英語)

f:id:tiginkgo:20180306194106p:plain

plot以外の描画

これまでの2つのサンプルはどちらもplotを使いました。plot以外の描画もしてみましょう。

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(10)
y = x

x_bar = np.arange(10)
y_bar = np.fabs(np.random.randn(10)) * 10

x_scatter = 10 * np.fabs(np.random.rand(10))
y_scatter = 2 * x_scatter + np.fabs(np.random.randn(10))

plt.plot(x, y,     color='red',   marker='o', linestyle='-',  label='plot') # 折れ線
plt.bar(x_bar, y_bar, color='blue',  label='bar') # 棒グラフ
plt.scatter(x_scatter, y_scatter, color='green', marker='s', label='scatter') # 散布図
plt.title('sample plot')
plt.xlabel('x')
plt.ylabel('y')
plt.xlim(-1, 11)
plt.ylim(-1, 31)
plt.grid()
plt.legend(loc='upper left')
plt.savefig("./graph.png") # グラフをカレントディレクトリにgraph.pngという名前で保存
plt.show()

上記のコードを実行すると以下のようになります。plt.~の~を書き換えることにより様々なグラフの描画できます。また、plt.savefig()で描画したグラフを保存しています。ファイル名の前にパスを指定すれば好きなディレクトリ(フォルダ)に保存することができます。今回の例ではカレントディレクトリに保存しています。

f:id:tiginkgo:20180306200334p:plain

あとがき

お疲れ様でした。今回はmatplotlibの基本を説明しました。次回は、もう少し詳しい説明をします。