matplotlib スライド

図示、可視化モジュール
~pylabとnumpyをちょっと~
pylabとは?
・数学や統計的なグラフを生成するモジュール
・インストール
pipやeasy installからのインストールを推奨
→numpyモジュールなどの前提としている。
Anacondaの場合は標準
読み込みの注意
・numpyを呼び出すことによる不具合
%pylab inline や from pylab import *
→組み込み関数が一部上書きされる。numpyを
二重に呼び出す。
%matplotlib inline や import pylab as pl
を推奨
-描画シンプルなコードで図を書くことができる
import pylab as pl
pl.plot([1,2,3,4,5,6])
出力結果→
-描画引数に2つのデータを与えることで、xとyそれぞ
れを指定することも可能。
pl.plot([1,3,4,6],[2,6,3,4])
出力結果→
-numpyでデータを作るnumpyモジュールを使えば、数学的な計算を簡
単にできる。
・連続したデータ
・三角関数のデータ
上の2つを例に説明する。
import numpy as np
と呼び出した状態で説明する。
-連続したデータ組み込み関数のrange()同様に使える関数とし
て、arange()を紹介する。
np.arange(5)
→array([0, 1, 2, 3, 4])
返り値はnumpyのarrayというデータ型
→list型同様に連続した要素なので、plot()の
データとして利用可能。
-連続したデータnumpyのlinspace(a,b,c)を使うと、aからbまでの
数をc個に分けたarrayを返す。
np.linspace(0,10,5)
→array([ 0. , 2.5, 5. , 7.5, 10. ])
-三角関数のデータ直感的な操作で三角関数を扱える
x=np.linspace(1,10,100)
pl.plot(x,np.sin(x))
出力結果→
-randomでデータを作る不規則なデータが欲しい時もあるだろう
・一様な乱数
・正規分布に従う乱数
上の2つを例に説明する。
import random as rd
と呼び出した状態で説明する。
-一様な乱数random()は0から1までの数をランダムに返す。
randint(start,end)を使うとstartからend-1の範囲
でランダムな整数を返します。
rd.random()
→ 0.5246038424705111 (結果は毎回異なる)
rd.randint(5,30)
→15(結果は毎回異なる)
-正規分布に従う乱数normalvariate(mu, sigma)は、平均mu、標準偏
差sigmaの正規分布に従う数値をランダムに返
す。
rd.normalvariate(0,10)
→-1.27123013191(結果は毎回異なる)
-グラフを整えるここまでに、グラフとデータを作る方法について
紹介した。
レポート等で利用するには、グラフの体裁を整
える必要がある。
ここからはその方法を項目ごとに紹介する。
-タイトルタイトルをつけるにはpylabのtitle(“graph title”)
を指定します。
pl.title("Line1",fontsize=20)
pl.plot(range(10))
-タイトル引数を指定することで、大きさや表示場所を調
整可能
-軸ラベル軸ラベルをつけるにはpylabのxlabel("label
name"),ylabel("label name")を指定します。
pl.xlabel("x-axis",fontsize=15)
pl.ylabel("y-axis")
pl.plot(range(10))
-軸ラベル引数を指定することで、大きさや表示場所を調
整可能
-凡例凡例をつけるにはpylabのlegend(['Data
name1','Data name2'...])を指定します。
pl.plot(range(10))
pl.legend(['data1'],fontsize=15)
-凡例引数を指定することで、大きさや表示場所を調
整可能
-マーカーの調整描画する線やマーカーの調整にはpylabの
plot(data,“strings”)と“strings”を指定する。
-マーカーの調整他に指定できる要素
-マーカーの調整マーカーや線の調整の例
pl.plot(range(10),"r--")
出力結果→
-ヒストグラムprot(data)同様にhist(data)を使うとdata内に現
れるデータの数を棒グラフとして表示可能
data = [rd.normalvariate(0,10) for i in range(100)]
hi = pl.hist(data)
-散布図scatter(data_x,data_y)は、複数の点の(x,y)座標
を表すデータを入力すると散布図を返す。
data_x = [rd.random() for i in range(100)]
data_y = [rd.random() for i in range(100)]
sc = pl.scatter(data_x,data_y)
-複数のグラフを表示1つの画面に複数のグラフを配置するためには
subplot(n,m,k)を使う。
n×mの領域のk番目に図を入れることを表す。
-複数のグラフを表示pl.subplot(2, 2, 1)
pl.plot(range(10))
pl.title("plot1") pl.subplot(2, 2, 2)
pl.plot(range(10,0,-1))
pl.title("plot2") pl.subplot(2, 2, 3)
pl.plot([1,3,5,4,2,6,9,8])
pl.title("plot3")
-複数のグラフを表示出力結果
このままではplot3のタイトルが被るので、最後
にpl.tight_layout()と書くことで自動調整する。
-複数のグラフを表示出力結果
-グラフの保存このような発表資料を作るためには図を保存す
ることが必要
pylabのsavefig(“file_name”)を使うとカレントディ
レクトリに図が保存される。
“file_name”には拡張子も含め、pdfも含む豊富
な画像形式をサポートしている。
おわりに
ここまでの説明
→残念ながら図示の話だけ
数値計算なども可能
→自分で勉強してください。
3次元の図も作成可能
→自分で勉強してください。
おわり。