Matplotlibで1つのグラフを描写するまとめ[書き方からグラフの装飾まで]

matplotlib はデータを視覚化するための機能が豊富に揃っているライブラリのことです.
さて、今回はグラフが1つ表示させたい場合にMatplotlibをどのように扱って行くかを解説していきます.

  • matplotlibを使い始めたばかりの方[1. グラフの描写]
  • グラフにグリットやラベルをどのように入れるか忘れた方[2. グラフの装飾]

などを対象に書いていきます.

今回説明するもの

  1. グラフの描写

    1. グラフにデータをプロットする
    2. グラフの一部だけ表示させる
  2. グラフに装飾する

    1. グラフの要素に名前を設定する
    2. グラフにグリッドを表示する
    3. グラフの軸に目盛りを設定する

1. グラフの描写

1. 1 グラフにデータをプロットする

  • matplotlib.pyplot.plot(x軸に対応するデータ, y軸に対応するデータ) を用いることでグラフのx軸とy軸にデータを簡単に対応させてグラフを作成することができます.

その後、

  • matplotlib.pyplot.show() を使うことで画面上に表示されます.
sample1.py
# matplotlib.pyplotをpltとしてimport
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 2*np.pi)
y = np.sin(x)

# データx,yをグラフにプロット
plt.plot(x,y)
#グラフを表示
plt.show()

numpy.linspace()についてはこちらの2.を参考にしてください.

result
Figure_1.png

1. 2 グラフの一部だけ表示させる

matplotlib.pyplotを用いてグラフを作成する際、グラフの表示範囲は自動で設定されます.

numpy.linspace()やnumpy.arange()のようにそれぞれに軸に割り当てたデータ(リスト)のmin()及びmax()が表示範囲の最小値と最大値になるため、データのすべての部分が自動で可視化されます.

しかし、グラフの一部だけを表示させたい場合もあります.この場合は,

  • matplotlib.pyplot.xlim([最初,最後]) などでグラフの表示範囲を指定することができます。ここで用いたxlimはx軸の範囲を指定する関数です.

y軸の場合は,

  • matplotlib.pyplot.ylim([..,..])
py;sample2.py
# matplotlib.pyplotをpltとしてimport
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 100)#最小値0、最大値100
y = 2*x
plt.title("y = 2*x ")#タイトルを設定下記で説明
# x軸の表示範囲を[0,50]に指定
plt.xlim([0,50])

# データx,yをグラフにプロット、表示
plt.plot(x, y)
plt.show()

x軸の範囲を0~50にした結果
Figure_1.png

x軸の範囲を指定することが出来る.

2. グラフに装飾する

2. 1 グラフの要素に名前を設定する

グラフにはなんの関数を表しているかやどういうグラフなのかを記すためにタイトルや軸にラベルをつけます.

matplotlib.pyplotがもつメソッドを用いることで、グラフの様々な要素に名前を設定することができます.
グラフのタイトルは、

  • matplotlib.pyplot.title("タイトル")

グラフのx軸の名前は、

  • matplotlib.pyplot.xlabel("x軸の名前")

グラフのy軸の名前は、

  • matplotlib.pyplot.ylabel("y軸の名前")

で設定することができます.

Figure_1.png

:exclamation:matplotlib.pyplot as pltとしています.

2. 2 グラフにグリッドを表示する

グリッド(格子)をグラフに表示させるには、

  • matplotlib.pyplot.grid(True)

スクリーンショット 2018-04-07 3.00.29.png

デフォルトでは、グリッドが表示されない

2. 3 グラフの軸に目盛りを設定する

matplotlibを用いてグラフを作成した際、x軸とy軸に自動で目盛りがつきます.

大抵の場合、それぞれの軸のきりのいい値の箇所で目盛りが付けられますが、データの種類によっては都合が悪いときもあります.例えばy=sin(x)で極値に目盛りを取りたい時など...

そこで、x軸に挿入する目盛りは、

  • matplotlib.pyplot.xticks(目盛りを挿入する位置,挿入する目盛り)

で設定することができる.

1.1 ~ 2.3 までのプログラムをすべて含んだプログラムを動かしてみる.

sample3.py
# matplotlib.pyplotをpltとしてimport
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 2*np.pi)
y = np.sin(x)
# 1.2グラフの範囲を設定
plt.xlim([0,2*np.pi])
plt.ylim([-1,1])
# 2.1グラフのタイトルを設定
plt.title("y = np.sin(x)")
# 2.1グラフのx軸とy軸に名前を設定
plt.xlabel("x-axis")
plt.ylabel("y-axis")
# 2.2グラフにグリッドを表示
plt.grid(True)
# 2.3グラフのx軸に目盛りを設定
plt.xticks([0, np.pi/2, np.pi, np.pi*3/2, np.pi*2],["0°", "90°", "180°", "270°", "360°"])

# 1.1データx,yをグラフにプロットし、表示
plt.plot(x, y)
plt.show()

スクリーンショット 2018-04-07 3.30.13.png


今回は以上で終わりです.データを扱っていく上でグラフの作成は重要になってきますので、この記事を読んでグラフのタイトルをいれたいな〜とかグラフに目盛りを入れることできるんだ!なんて思ってくれたら嬉しいです:joy:
これから、DeepLearning、データ分析関連の記事も書いていこうと思ってますので応援よろしくお願いします!

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.