この記事ではmatplotlibの基本的な使い方をご紹介したいと思います。
matplotlibを使えるようになると、簡単にグラフが作成出来るようになるんです!
この記事では
・matplotlibとは
・matplotlibのインストール方法
・matplotlibの基本的な使い方
などといった基本的な内容から
・matplotlibの応用的な使い方
といった、より高度なテクニックについてもわかりやすく解説していきます。
本記事を読む前に、Pythonがどんなプログラミング言語なのかをおさらいしておきたい人は次の記事を参考にしてください。
→ Pythonとは?特徴やできること、活用例をわかりやすく簡単に解説
なお、その他のPythonの記事についてはこちらにまとめています。
matplotlibとは
みなさんはmatplotlibを使ったことはありますか?
そもそもmatplotlibが何か知っていますか?
matplotlibとはPythonにおけるグラフ描画の標準的なライブラリです。
様々な種類のグラフを作成する事が出来、使い方を一度覚えておくととても便利です。
また、matplotlibを使用するにあたってNumPyモジュールなどを頻繁に活用することとなるので、NumPyのインポートも行いましょう。
NumPyについては、以下のリンクを参照してください。
matplotlibのインストール方法
では早速、matplotlibをインストールしてみましょう。
matplotlibライブラリをインストールするには、コマンドプロンプトで次のコマンドを実行させてみてください。
pip install matplotlib
pipに関する詳しい情報は以下のリンクを参照してください。
これでmatplotlibライブラリのインストールは完了です。
matplotlibの基本的な使い方
では、matplotlibを実際に使用してみましょう。
まずは、matplotlibを使用する際に必要なライブラリをインポートしておきましょう。
from matplotlib import pyplot import math import numpy as np
上のコードでは、matplotlibライブラリのpyplot、math、numpyのインポートを行いました。
一次・二次関数のグラフや折れ線グラフを
一次関数や二次関数のグラフ、また折れ線グラフなどはpyplotモジュールのplot関数を使用すると簡単に作成出来ます。
plot関数に焦点を当てた記事は以下のリンクから読めるので、ぜひ目を通してみてください。
ヒストグラム
matplotlibライブラリではヒストグラム(棒グラフ)などの作成も可能です。
では今回は簡単に標準正規分布のヒストグラムを作成してみましょう。
以下のコードをご覧ください。
x = np.random.normal(0,1,1000) pyplot.hist(x)
上のコードでは、NumPyのrandom.normal関数を使用し、期待値0、標準偏差1の標準正規分布からランダムに1000個サンプルを摘出しました。
それをxに格納し、hist関数を呼び出しました。
ご覧いただけるように、正規分布の形のグラフが表示されました。
散布図
matplotlibでは散布図なども簡単に作成出来てしまいます。
散布図とは英語でscatter plotとも言い、データを点でプロットしたグラフです。
では早速、散布図を描いてみましょう。
以下のコードをご覧ください。
x = np.linspace(0,10,100) y = np.random.randn(100) pyplot.scatter(x,y) pyplot.show()
上のコードでは、xに0から10までの数字を100分割したものを代入し、yには標準正規分布の乱数100個を格納しました。
そしてpyplotモジュールのscatter関数を使用し、以下のようなグラフを出力しました。
ご覧いただけるように、きちんと散布図が表示されました。
円グラフ
matplotlibでは円グラフも簡単に作成出来ます。
以下のコードをご覧ください。
x = np.array([0.6,0.15,0.20,0.05]) l = ["Python","Java", "JavaScript","C++"] c = ["red", "lightcoral", "green", "yellow"] pyplot.pie(x,autopct="%d%%", labels = l, colors = c) pyplot.axis('equal') pyplot.show()
上のコードでは、変数xに割合の配列を代入しました。今回は4分割したので、60%、15%、20%、5%といった分割になりました。
リスト型オブジェクトlには先ほどの割合のラベルを、リスト型オブジェクトcにはそれらの色の名前を格納しました。
そしてpyplotモジュールのpie関数を呼び出しました。
pie関数には割合の配列x、割合の数字の後に付ける文字(パーセンテージ記号)の指定、ラベルやカラー指定を含むリスト型オブジェクト、などを引数に与えました。
いつも通りのshow関数の前にaxis関数を呼ぶことで、円グラフが楕円形になることを防ぎます。
上記のコードを実行すると以下のようなグラフが出力されます。
ご覧いただけるように、指定した通りの色分けで円グラフが作成出来ました。
matplotlibの応用的な使い方
これまでは基本的なmatplotlibの機能をご紹介しました。
matplotlibの応用的な使い方を学べば、グラフに様々な工夫を加えることが出来るようになります。
色や線の太さの指定
例えば複数のグラフを出力したい時など、色分けできると便利ですよね。
そんなときは、オプション指定colorを使用します。
以下のコードをご覧ください。
pyplot.plot(x,y, color ="red")
上のコードでは、一次関数のグラフを赤に変更してみました。
上のコードの実行例は以下の通りです。
また、赤以外にも様々な色指定が可能です。
pyplot.plot(x,y, color ="magenta")
上のコードを実行すると、以下のような色のグラフが作成できます。
様々な色の名前は以下のリンクに載っているので、目を通してみてください。
また、色だけでなく線や点の太さなどの調節も可能です。
以下のコードをご覧ください。
x = np.linspace(0,10,100) y = np.random.randn(100) pyplot.scatter(x,y, color ="red", linewidth=4)
上のコードでは、linewidthオプションで点の太さを調節しました。
ご覧いただけるように、点は赤く大きくなっています。
数字を増やせば増やすほど、太い点や線を描くことができます。
また、linestyleをdashedにすることで点線を描く事が出来ます。
x = np.linspace(-10,10,100) y= x**2 pyplot.plot(x,y, color ="red", linewidth= 2, linestyle = "dashed")
上のコードでは二次関数のグラフを赤く塗り、点線にし、太さも調節してみました。
すると、以下のようなグラフが作成出来ました。
このように、グラフを様々な方法でカスタマイズできるのでオプション指定は便利ですね。
複数のグラフを表示する方法
例えばヒストグラム上に二次関数のグラフを重ねたり、折れ線グラフの上に違う色の折れ線グラフを重ねたりなど、複数のグラフを表示したい場面があると思います。
そんな時は以下のようにコードを書いてみてください。
g1 = pyplot.plot(x/2,y/2, linestyle="dashed", color = "red") g2 = pyplot.plot(x,y) pyplot.legend((g1[0], g2[0]), ("Dashed", "Line"), loc=4) pyplot.show()
上のコードでは、g1とg2の二つの折れ線グラフを一緒に出力してみました。
今までとの違いは、plot関数の戻り値を変数p1とp2に保存していることです。
plot関数は戻り値としてプロットするグラフのデータをリスト型オブジェクトに格納しています。
そして、二つ一緒に出力する秘密は、legend関数にあります。
legend関数が要する引数は
・g1、g2二つのリストの一番目の要素
・g1のグラフ名、g2のグラフ名
・凡例の位置指定
です。
そして最後にいつも通りshow()を呼び出すことで、以下のようなグラフが表示されました。
このように二つ以上のグラフを同じ画像内に組み込むことが出来ました。
まとめ
今回はmatplotlibライブラリの基本的な使い方をご紹介しました。
matplotlibはグラフ作成においてとても便利なツールなので、その使い方を知っておいて損はありません。
みなさんもぜひこの記事を通してmatplotlibライブラリへの知識を深めていってくださいね。
なお、今Pythonを学習している方は以下の記事もどうぞ。
はじめてPythonを使う方でもわかりやすいように、Pythonでできることやその学習法などを中心にまとめています。
復習にも使えると思いますので、ぜひ一度ご覧になってみてくださいね。
【Python 入門完全攻略ガイド】