Help us understand the problem. What is going on with this article?

【Python入門】ライブラリmatplotlibの基本的な使い方

More than 3 years have passed since last update.

※こちらの記事は、プロスタ編集部が現在大変人気の高いPythonの文法記事を公開することで、皆様の学習にお役に立ちたい意図で投稿しております。
参考サイト:【Python入門】ライブラリmatplotlibの基本的な使い方

【Python入門】ライブラリmatplotlibの基本的な使い方

Pythonではnumpyやscipyといったライブラリを使うことで科学計算を簡単に行うことができますが、そういった計算結果をグラフなどで図表できると分かりやすいですよね。そんな時に便利なのがmatplotlibというライブラリです。matplotlibを使えばPythonでデータをグラフにプロットできるようになります。numpy、scipyと組み合わせることで、Pythonだけでデータの読み込み・加工・計算、そしてプロットが行えます。

今回はmatplotlibの基本的な使い方について説明します。

matplotlibのインストール

numpy・scipyのインストール

matplotlibはnumpyおよびscipyと組み合わせることが多いです。絶対ではありませんが、もし必要な場合は先にnumpyおよびscipyをインストールしておきましょう。

matplotlibをインストール

matplotlibをインストールします。matplotlibはpipコマンドでインストールすることができます。

pip install matplotlib

もしくはmatplotlibのページからファイルをダウンロードし、ダウンロードしたファイルをpipコマンドでインストールしてください。

http://www.lfd.uci.edu/~gohlke/pythonlibs/

pipコマンド

pip install さきほどダウンロードしたファイルのパス

matplotlibにもnumpyやscipyと同じくいくつかのバージョンがあるので、自分のpythonやOSにあったバージョンをダウンロードしてください。
例えば「matplotlib-2.0.0-cp36-cp36m-win_amd64.whl」というファイルはpython3.6、64ビットのWindows向けとなっています。

matplotlibを使う

グラフを描画する

matplotlibのインストールが終わったら、さっそくグラフを表示してみます。グラフの表示にはmatplotlib.pyplotモジュールのplot()およびshow()を使用します。

from matplotlib import pyplot

pyplot.plot(x軸, y軸)
pyplot.show()

plot()の引数にはシーケンス(numpy配列やリスト)を渡します。最初の引数がx軸、2つ目の引数がy軸を表します。plot()でデータをプロットし、show()で実際に画面に表示します。

import math
import numpy as np
from matplotlib import pyplot

pi = math.pi   #mathモジュールのπを利用

x = np.linspace(0, 2*pi, 100)  #0から2πまでの範囲を100分割したnumpy配列
y = np.sin(x)

pyplot.plot(x, y)
pyplot.show()

実行結果
figure_1.png

この例では三角関数のsinをnumpyで計算し、その結果をmatplotlibで表示しています。数字で見るよりも視覚的で理解しやすいです。

グラフの設定

plot()およびshow()でグラフの表示ができましたが、このグラフには情報がほとんどありません。今回の例はsinの有名なグラフなので分かる人はすぐ分かりますが、通常はタイトルや軸名、凡例などを設定してそのグラフが何を表しているかを示す必要があります。

matplotlibならグラフの設定も簡単に行えます。

~ここまでは上記の例と同じなので省略~

#凡例のためにlabelキーワードで凡例名をつける
pyplot.plot(x, y, label='sin')

#グラフタイトル
pyplot.title('Sin Graph')

#グラフの軸
pyplot.xlabel('X-Axis')
pyplot.ylabel('Y-Axis')

#グラフの凡例
pyplot.legend()

pyplot.show()

実行結果
figure_2.png

この例ではさきほどのsinのグラフにタイトル、軸名、凡例をつけました。凡例をつける際にはplot()のlabelキーワードで凡例名をつけるのを忘れないようにしましょう。グラフの設定はこのほかにも線の色や線種の変更など、さまざまなことができます。

複数のグラフを表示

さきほどの例ではsinのグラフだけを表示していましたが、plot()でデータを追加することで複数のデータを表示できます。

pi = math.pi

x = np.linspace(0, 2*pi, 100)
sin_y = np.sin(x)
cos_y = np.cos(x)  #新たにcosを計算

pyplot.plot(x, sin_y, label='sin')
pyplot.plot(x, cos_y, label='cos')  #cosの値をプロット

#グラフタイトル
pyplot.title('Sin And Cos Graph')

#グラフの軸
pyplot.xlabel('X-Axis')
pyplot.ylabel('Y-Axis')

#グラフの凡例
pyplot.legend()

pyplot.show()

実行結果
figure_3.png

この例では先ほどまでのsinに加えてcosのグラフも表示しています。2つのグラフを同時に表示することができました。なお、複数のグラフを表示するときはlabelキーワードとlegendを使って凡例を表示するのを忘れないようにしましょう。

おすすめ

【無料で使える】Pythonを勉強できる学習サイト7つ
Pythonの本・参考書の評判

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした