図示、可視化モジュール ~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次元の図も作成可能 →自分で勉強してください。 おわり。
© Copyright 2024 ExpyDoc