Pythonで最も有名なグラフ描画をするライブラリであるmatplotlibとseabornを使ったグラフ作成の方法について紹介します.
折れ線グラフの作成方法
はじめに,折れ線グラフの作成方法を紹介します.
グラフを作成する際の基本的な流れは下記のようになります.
では,実際にサンプルコードを紹介します.
# ライブラリのインポート
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
# データの作成
x = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
y = np.array([0, 3, 1, 5, 6, 6, 1, 9, 8, 7])
# グラフの描画領域の用意
fig = plt.figure()
# 折れ線グラフの作成
plt.plot(x, y, color='black')
plt.title("Sample Graph")
plt.xlabel("x")
plt.ylabel("y")
# グラフ画像の保存
plt.savefig("graph.png")
このサンプルコードによって作成された画像が以下になります.
棒グラフの作成方法
棒グラフの作成には,seabornというデータ可視化ライブラリを用います.matplotlibのみでも作成は可能ですがseabornを用いた方がより少ないコードで図を作成できるためここではseabornを用います.
サンプルデータとして多くのサイトで使われているkaggleのTitanicデータセットを使用します。
棒グラフを作成する際に用いる関数は,catplotを用います.指定する引数は以下になります.
・x:可視化したい変数
・data:変数を持つデータフレーム
・kind:作成するグラフの種類(棒グラフの場合,”count”)
サンプルコードと生成されたグラフ画像がこちらです.
# ライブラリのインポート
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
import seaborn as sns
# データの読み込み
titanic = sns.load_dataset("titanic")
print(titanic.head())
survived pclass sex age ... deck embark_town alive alone
0 0 3 male 22.0 ... NaN Southampton no False
1 1 1 female 38.0 ... C Cherbourg yes False
2 1 3 female 26.0 ... NaN Southampton yes True
3 1 1 female 35.0 ... C Southampton yes False
4 0 3 male 35.0 ... NaN Southampton no True
# 棒グラフの作成
sns.catplot(x="pclass", data=titanic, kind="count")
# グラフ画像の保存
plt.savefig("graph.png")
このように,seabornを用いることで一行で棒グラフを作成することができます.
ヒストグラム(度数分布図)の作成方法
一つの変数の分布を階級に分けて表現するのがヒストグラムです.
ヒストグラムを作成する際に用いる関数は,displotになります.引数には、PandasのSeries、Numpyの1d-array、もしくはPythonのリストを指定します。
サンプルコードと生成されたグラフ画像がこちらです. (棒グラフの作成で用いたコードの途中からです)
# ヒストグラムの作成
sns.displot(titanic['age'])
散布図の作成方法
2つの数量データの関係性を調べる際は,散布図を用います.
散布図はscatterplot関数を用いて作成します.引数は以下のようになります.
・x:横軸
・y:縦軸
・data:データフレーム
今回は, Titanicデータセット の「age」と「fare」を用いて紹介します. (棒グラフの作成で用いたコードの途中からです)
# 散布図の生成
sns.scatterplot(x='age', y='fare', data=titanic)
おわりに
matplotlibとseabornを使って簡単にグラフを作成する方法を紹介しました.
今回紹介したグラフ以外や,プロットの色などのデザインの変更方法は今後紹介します!