こんにちは、なおいです。
前回、 matplotlibというライブラリで散布図の描き方を書きましたので、今回は折れ線グラフを描いていきたいなと思います。最初のインストールやインポートについては 割愛しますので、前回の記事をご参照いただければ。。。
折れ線グラフのプロット
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)とプロットされていくはずです。
問題なくプロットされてます。では、前回同様に見た目をカスタマイズしていきます。
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に付けられる主要なカスタマイズキーワードは表形式でグラフの後に載せときます。
次は目盛線を散布図とは違う方法でつけてみます。さらに、グラフタイトルとX軸Y軸のラベルを入れましょう。
Tips)プロットに付与できる主要なカスタマイズキーワード
主要と書いてます通り、こちらもたくさんキーワードはあります。より細かい指定で様々な折れ線グラフが描けますが、最低限これだけおさえてれいれば、普通のグラフは書けるかなという範囲のみ記載しておきます。
kywd | 入力例 | 備考 |
---|---|---|
x,y | [1,2,3,4,5] または 事前に定義したlistなど | array形式のもの ※必須 |
line関連 | ||
linewidth | linewidth=5 | ラインの太さ |
linestyle | linestyle="dashdot" | ラインの形式 solidは実線 dashedは破線 dashdotは一点鎖線 dottedは点線 |
color | color="red"または color="#FFFF00"または color=(1.0,0,1.0) | ラインの色 色名や16進数、RGBでの指定が可能 |
marker関連 | ||
marker | marker="s" | マーカーの形 指定しないと○ *は星形など様々指定可 |
markersize | markersize=25/td> | マーカーのサイズ |
markerfacecolor | markerfacecolor="b"または markerfacecolor="#FFFF00" , markerfacecolor=(1.0,0,1.0) | マーカーの色 色名や16進数、RGBでの指定が可能 |
markeredgewidth | markeredgewidth=3 | マーカーの枠の太さ |
markeredgecolor | markeredgecolor="g"または markeredgecolor="#ff0000" , markeredgecolor=(0,0,1.0) | マーカーの枠の色 色名や16進数、RGBでの指定が可能 |
label | label="label1" | 凡例名 |
色と形については、リファレンスを見ると以下のものが用意されているみたいです。
color example code: named_colors.py — Matplotlib 2.0.2 documentation
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()
先ほど同様、赤文字部を追加することで見た目のカスタマイズを行いました。今回は、グリッド線をより細かく指定しています。実際のグラフが以下のものです。
うん、いい感じです。では、前回は散布図を複数同じグラフに入れましたが、今回は前回の散布図と今の折れ線グラフを重ねてみましょう。
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()
前回、「同じグラフにプロットするだけならただもう一行追加するだけでいい。」と書きましたが、これは別のグラフでも適用されるんですね!非常にありがたい。
いかがでしたか?これで、折れ線グラフも書けるようになりました!
次回は、棒グラフ書いてみましょうかね。