Python Matplotlibを使ったグラフの作り方
(本記事のコードを作成した開発環境はGoogle Colaboratory Python 3.10.12 となります。)
MatplotlibはPythonでグラフ描画するためのライブラリです。Matplotlibを使うことで、グラフの描画やデータの可視化が簡単に行えます。pandasやnumpyといったライブラリと組み合わせて使うことが多いかと思います。
Matplotlibでは折れ線グラフ、ヒストグラムや散布図などの表現可能ですが、今回は折れ線グラフを例によく使うコードをまとめてみました。
- Matplotlibの使い方
- グラフの出力
- 線の変更
- 点のプロット方法
- 2点を通る無限直線をプロットする
- 2点間を直線で結ぶ
- グリッド線を描画する
- 目盛りの指定
- グラフの大きさ変更
- グラフタイトル、x軸名、y軸名の付け方
Matplotlibの使い方
Matplotlibを使ってグラフを書く最も簡単な手順は次の通りです。
- matplotlib.pyplotをimportする
- x軸、y軸のデータを作成
- plot関数を使いプロットする
- show関数を使いプロットしたグラフを出力する
途中で線の種類を選択したり、グラフの大きさや目盛りを変更したりして見やすくする操作が入りますが基本的には上記手順でグラフを作成していきます。
グラフの出力
① Matplotlibのimport
下記コードを使っていMatplotlibをインポートします。
1 2 |
# Matplotlibのインポート import matplotlib.pyplot as plt |
② x軸、y軸のデータを作成
x軸、y軸それぞれのデータをlist型やtuple型として作ります。このとき、x軸のデータ数とy軸のデータ数が一致している必要があります。下記コードで「x_data」にx軸のデータを「y_data」にy軸のデータを格納しました。
1 2 3 |
# x軸、y軸のデータ x_data = (0,1,2,3,4) y_data = (0,1,4,9,16) |
もちろん、Pandasやnumpyで生成したDataFrameでもOKです。
③ plot関数を使いプロットする
下記コードでプロットをします。plot関数の第1引数にx軸のデータを、第2引数にy軸のデータを入れます。その他にもplot関数の引数で線の色やスタイルの指定も行えます。
1 2 |
# グラフをプロットする plt.plot(x_data , y_data) |
④ show関数を使いプロットしたグラフを出力する
最後にshow関数を使いプロットしたグラフを出力します。
1 2 |
# グラフを出力する plt.show() |
コード全体
グラフを出すための基本コードは下記の通りです。ここから、plot関数の引数を追加したりこの後紹介するコードを追加することによりグラフをアレンジしていきます。
1 2 3 4 5 6 7 8 9 10 11 12 |
# Matplotlibのimport import matplotlib.pyplot as plt # x軸、y軸のデータ x_data = (0,1,2,3,4) y_data = (0,1,4,9,16) # グラフをプロットする plt.plot(x_data , y_data) # グラフを出力する plt.show() |
線の変更
plot関数の引数を変更することでプロットする線の色、太さ、線のスタイルを変更することができます。
① 線の色 引数「color」
引数の「color」を選択することでプロットする線の色を変更することができます。下記コードのように「color = “r”」とすると線が赤くなります。
1 2 |
# グラフをプロットする plt.plot(x_data , y_data , color ="r") |
選択できる色は数多くあります。 1文字で指定できるのは光の三原色 (r,g,b) 、色の三原色 (c,m,y)、黒(k)、白(w)の8色です。
② 線の太さ 引数「linewidth」
引数の「linewidth」を使用することで線の太さを変更することができます。
1 2 |
# グラフをプロットする plt.plot(x_data , y_data ,linewidth = 10) |
③ 線のスタイル 引数「linestyle」
引数の「linestyle」を使用することで線のスタイルを変更することができます。下記コードのように「linestyle = “dashed”」とすると線が点線なります。
1 2 |
# グラフをプロットする plt.plot(x_data , y_data ,linestyle = "dashed") |
線の種類は下記の4種類の中から選択できます。
点のプロット方法
plot関数の第1引数、第2引数を使って1点の座標を入れることで点をプロットできます。また、引数「marker」を選択することでプロットする点の種類を変更できます。下記コードで座標( 1 , 1 ) と 座標( 3 , 9 ) に★マークの点をプロットしました。
1 2 3 4 5 6 7 8 9 |
# グラフをプロットする plt.plot(x_data , y_data) # 点をプロットする plt.plot(1,1,marker='*',color='b') plt.plot(3,9,marker='*',color='b') # グラフを出力する plt.show() |
引数「marker」で選択できるマークは下記の通りです。
2点を通る無限直線をプロットする
axline関数を使用することで2点を通る無限直線を引くことができます。第1引数と第2引数を使って2点を指示します。plot関数と同様に、引数「color」「linewidth」「linestyle」を使って線の使用を変更できます。
1 2 3 4 5 6 7 8 |
# グラフをプロットする plt.plot(x_data , y_data) # 2点を通る無限直線をプロットする plt.axline((0, 9), (3, 9),color='k',linewidth=0.4) # グラフを出力する plt.show() |
2点間を直線で結ぶ
2点間に無限直線ではなく両端が決まっている直線を引きたい場合は下記のように端末となる2点の座標を表すデータを作成して作成し、plot関数を使ってプロットすることですることでグラフに反映することができます。
1 2 3 4 5 6 7 8 9 10 |
# グラフをプロットする plt.plot(x_data , y_data) # 2点間に両端が決まっている直線を引く x_slope = (1, 3) y_slope = (1, 9) plt.plot(x_slope,y_slope,color='g') # グラフを出力する plt.show() |
グリッド線を描画する
Matplotlibで出力されるグラフにはグリッドが付いていませんが、下記コードを入れることでぐりっとを出すことができます。
1 2 3 4 5 6 7 8 |
# グラフをプロットする plt.plot(x_data , y_data) # グリッド線を描画する plt.grid() # グラフを出力する plt.show() |
目盛りの指定
yticks関数、xticks関数を使って目盛りに表示される値の指定をできます。yticks関数及びxticks関数にはlist型もしくはtuple型で指定したい値を渡します。
1 2 3 4 5 6 7 8 9 |
# グラフをプロットする plt.plot(x_data , y_data) # 目盛りの指定 plt.yticks([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]) plt.xticks([0,1,2,3,4]) # グラフを出力する plt.show() |
グラフのサイズ変更
rcParamsの設定値を変更することでグラフのサイズを変更できます。rcParamsにはMatplotlibの各デフォルト設定値が格納されています。その中でグラフのサイズ「figure.figsize」を指定して変更できます。
1 2 3 4 5 6 7 8 |
# グラフをプロットする plt.plot(x_data , y_data) # グラフのサイズ変更 plt.rcParams["figure.figsize"] = [5,5] # グラフを出力する plt.show() |
他にも様々な設定が格納されています。コード「plt.rcParams」で各設定内容を確認できます。
グラフタイトル、x軸名、y軸名の付け方
title関数、xlabel関数、ylabel関数を使うことでグラフのタイトル、x軸名、y軸名を付けることができます。
1 2 3 4 5 6 7 8 9 10 |
# グラフをプロットする plt.plot(x_data , y_data) # グラフタイトル、x軸名、y軸名 plt.title('Title') plt.xlabel('x_Title(mm)') plt.ylabel('y_Title(s)') # グラフを出力する plt.show() |