こんにちは!!ようこそ、当ブログgcbgardenへ。管理人のsakurabaaa(@sakurabaaa_g)です。
先日ダウンロードしたAnacondaを使ってJupyterを起動し、データの可視化ライブラリ「matplotlib」をつかって遊んでみました!!
LINKAnacondaでPythonの環境(Jupyter notebook)を構築する
だれでも簡単にグラフが描けるようになるのでかなりおすすめです!エクセルなんかで表示するよりもいけてるんじゃないかな!?
matplotlibデータの可視化①
以前購入した参考書をベースに練習してみました!!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | %matplotlib inline import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.size']=14 #フォントサイズ np.random.seed(123) #乱数種の指定 N = 100 #100点のデータを生成 x = np.random.rand(N) y = 2 * x + np.random.randn(N) plt.scatter(x , y) #散布図をプロット plt.title('sample plot') #図のタイトル plt.xlabel('x') #x軸のラベル plt.ylabel('y') #y軸のラベル plt.grid() #グリッド線を引く plt.show() #グラフの出力 |
すげ〜なんかいろいろできそうな予感!!
matplotlibデータの可視化②
50個の0~1の値を生成しxを10倍、yを100倍したものを散布図として表示
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | %matplotlib inline import matplotlib.pyplot as plt import numpy as np N = 50 #50のデータを生成 x = np.random.rand(N) * 10 #0~1のランダムな数字を生成 10倍 y = np.random.rand(N) * 100 #0~1のランダムな数字を生成 100倍 plt.xlim([-1,11]) #x軸の範囲を指定 plt.ylim([-5,110]) #y軸の範囲を指定 plt.scatter(x,y) #散布図の生成 plt.show() #グラフの出力 |
すごい!!かなりおもしろい!!
matplotlibデータの可視化③
今度は、matplotlibデータの可視化②と同一条件で、散布図ではなく直線で結んでみました!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | %matplotlib inline import matplotlib.pyplot as plt import numpy as np N = 50 #100このデータを生成 x = np.random.rand(N) * 10 #0~1のランダムな数字を生成 10倍 y = np.random.rand(N) * 100 #0~1のランダムな数字を生成 100倍 plt.xlim([-1,11]) #x軸の範囲を指定 plt.ylim([-5,110]) #y軸の範囲を指定 plt.plot(x,y) #直線を生成 plt.show() #グラフの出力 |
あかちゃんの落書きみたい。笑
おそらく、np.random.rand()は配列で出力されて、その出力された値を上から順に点と点を結んでしまうのでこんなぐちゃぐちゃなグラフになってしまっています。笑
1 2 3 4 | array([ 0.78515479, 0.90301686, 0.12439919, 0.19711186, 0.94654841, 0.71702785, 0.41193742, 0.26464204, 0.24821833, 0.21872837, 0.66644116, 0.68437932, 0.76557561, 0.01992049, 0.72132283, ...]) |
こんな感じの出力なので、0.78いって、0.90いって、という感じで点と点を行ったり来たりしているわけだ。
ソートしてくれるなにかあったりするのかな!? 絶対あるから調査します。
LINK「matplotlib」numpyのsortを使って乱数の値を整理
matplotlibデータの可視化④
最後に、これで毎月のPV数報告とか定量的データの開示ができる!!
毎月のPV数表示!!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | %matplotlib inline import matplotlib.pyplot as plt import numpy as np z = np.array([1,2,3,4,5]) q = np.array([300,553,633,455,800]) plt.scatter(z,q) plt.plot(z , q, linestyle=':') plt.title('Monthly PV') plt.xlabel('Month') plt.ylabel('PV') plt.xlim([1,12]) plt.grid() plt.show() |
かなりいけてるよね!!
※今回のデータはサンプルになります。
まとめ
機械学習の勉強の基礎であるデータの可視化に必要なmatplotlibで遊んでいたらかなり楽しめちゃいました。
一瞬でグラフの表示ができたりしてかなりおすすめです。
以下の参考書にヒントがもりだくさんなので気になった方はのぞいてみてください!
この記事を書いた人。
20代。とあるネットベンチャーでがんばる働き屋さん、ブロガー。
書きたいことを気ままに書いてます!
Python、プログラミング、米株、カメラ、野球観戦がすき。趣味は新宿散策。