Quantcast
Channel: しぷぜん
Viewing all articles
Browse latest Browse all 30

Pythonでデータを可視化するmatplotlib入門(折れ線編)

$
0
0

こんにちは、なおいです。

前回、 matplotlibというライブラリで散布図の描き方を書きましたので、今回は折れ線グラフを描いていきたいなと思います。最初のインストールやインポートについては 割愛しますので、前回の記事をご参照いただければ。。。 

ct-innovation01.hateblo.jp

 

 

f:id:ct-innovation01:20170927160405p:plain

折れ線グラフのプロット

1.基本
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [1, 8, 3, 6, 5]

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

散布図同様なんにも設定がいらなければ、これだけでプロットできます。

プロットした結果は以下の通りで、xとyは配列になっていて同じ数であれば、x[0]とy[0]の場所にプロットしてくれるため(1,1)となり、そのあとも同じインデックス同士の(2,8)、(3,3)、(4,6)、(5,5)とプロットされていくはずです。

 

f:id:ct-innovation01:20170928002232p:plain

問題なくプロットされてます。では、前回同様に見た目をカスタマイズしていきます。

 

2.プロットの見た目をいじる
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [1, 8, 3, 6, 5]

plt.plot(x,y,label='test',linewidth=3,color='b',
marker='^',markeredgecolor="black"
)plt.legend()#凡例 plt.show()

赤文字部を追加することで今回はラインの太さと色、マーカーの表示といったカスタマイズを行いました。散布図の時と同様にplotに付けられる主要なカスタマイズキーワードは表形式でグラフの後に載せときます。

 

f:id:ct-innovation01:20170928002617p:plain

 

次は目盛線を散布図とは違う方法でつけてみます。さらに、グラフタイトルとX軸Y軸のラベルを入れましょう。

 

Tips)プロットに付与できる主要なカスタマイズキーワード

主要と書いてます通り、こちらもたくさんキーワードはあります。より細かい指定で様々な折れ線グラフが描けますが、最低限これだけおさえてれいれば、普通のグラフは書けるかなという範囲のみ記載しておきます。

kywd入力例備考
x,y[1,2,3,4,5] または 事前に定義したlistなどarray形式のもの
※必須
line関連
linewidthlinewidth=5ラインの太さ
linestylelinestyle="dashdot"ラインの形式
solidは実線
dashedは破線
dashdotは一点鎖線
dottedは点線
colorcolor="red"または
color="#FFFF00"または
color=(1.0,0,1.0)
ラインの色
色名や16進数、RGBでの指定が可能
marker関連
markermarker="s"マーカーの形
指定しないと○
*は星形など様々指定可
markersizemarkersize=25/td>マーカーのサイズ
markerfacecolormarkerfacecolor="b"または
markerfacecolor="#FFFF00" ,
markerfacecolor=(1.0,0,1.0)
マーカーの色
色名や16進数、RGBでの指定が可能
markeredgewidthmarkeredgewidth=3マーカーの枠の太さ
markeredgecolormarkeredgecolor="g"または
markeredgecolor="#ff0000" ,
markeredgecolor=(0,0,1.0)
マーカーの枠の色
色名や16進数、RGBでの指定が可能
labellabel="label1"凡例名

色と形については、リファレンスを見ると以下のものが用意されているみたいです。

f:id:ct-innovation01:20170927115343p:plain

color example code: named_colors.py — Matplotlib 2.0.2 documentation

f:id:ct-innovation01:20170927115403p:plainf:id:ct-innovation01:20170927115416p:plain

lines_bars_and_markers example code: marker_reference.py — Matplotlib 2.0.2 documentation

 

3.グラフの見た目をいじる
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [1, 8, 3, 6, 5]

plt.plot(x,y,label='test',linewidth=3,color='b',
marker='^',markeredgecolor="black") plt.legend()plt.minorticks_on()#副目盛線表示状態plt.grid(which='major',color='black',linestyle='-')#目盛線plt.grid(which='minor',axis='y',color='grey',linestyle='-.')#副目盛線plt.xlabel("X-label")#X軸ラベルplt.ylabel("Y-label")#Y軸ラベルplt.title("TEST GRAPH")#グラフタイトル plt.show()

先ほど同様、赤文字部を追加することで見た目のカスタマイズを行いました。今回は、グリッド線をより細かく指定しています。実際のグラフが以下のものです。

 

f:id:ct-innovation01:20170928222355p:plain

 

うん、いい感じです。では、前回は散布図を複数同じグラフに入れましたが、今回は前回の散布図と今の折れ線グラフを重ねてみましょう。

 

4.一つのグラフに折れ線グラフと散布図を重ねてプロットする
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [1, 8, 3, 6, 5]
y2 = [8, 2, 4, 3, 7]

plt.plot(x,y,label='test',linewidth=3,color='b',
marker='^',markeredgecolor="black")plt.scatter(x,y2,s=80, marker='p',c='red',label='test2') plt.legend() plt.minorticks_on() plt.grid(which='major',color='black',linestyle='-') plt.grid(which='minor',axis='y',color='grey',linestyle='-.') plt.xlabel("X-label") plt.ylabel("Y-label") plt.title("TEST GRAPH") plt.show()

前回、「同じグラフにプロットするだけならただもう一行追加するだけでいい。」と書きましたが、これは別のグラフでも適用されるんですね!非常にありがたい。

 

f:id:ct-innovation01:20170928222518p:plain

いかがでしたか?これで、折れ線グラフも書けるようになりました!

次回は、棒グラフ書いてみましょうかね。

 

 

 


Viewing all articles
Browse latest Browse all 30

Trending Articles