Python Pandas&Seaborn入門:棒グラフを描いて観測値の標準偏差を表示する方法
Seabornの棒グラフとは
Seabornの棒グラフ(bar plot)は、カテゴリごとの点推定値と信頼区間を長方形のバーとして視覚的に表現するためのプロットです。描画には seaborn.barplot() 関数を使用します。
観測値の標準偏差を表示したい場合は、信頼区間を指定する ci パラメータに "sd" を設定します。デフォルトでは95%信頼区間がブートストラップ法で計算されますが、"sd" を指定することで、エラーバーが標準偏差として表示されるようになります。
使用するデータセット
ここでは、クリケット選手の所属アカデミー(Academy)や試合数(Matches)などの情報を含むデータセットが、CSVファイル「Cricketers2.csv」として保存されているものとします。
必要なライブラリのインポート
まず、必要なライブラリをインポートします。
import seaborn as sb
import pandas as pd
import matplotlib.pyplot as plt
CSVファイルからデータを読み込む
CSVファイルからPandasのDataFrameにデータを読み込みます。
dataFrame = pd.read_csv("C:\\Users\\amit_\\Desktop\\Cricketers2.csv")棒グラフの描画
「Academy」をX軸、「Matches」をY軸として棒グラフを描画します。ci パラメータに "sd" を指定することで、観測値の標準偏差がエラーバーとして表示されます。
sb.barplot(x = "Academy", y = "Matches", data = dataFrame, ci = "sd")
完全なコード例
以下が全体のコードです。
import seaborn as sb
import pandas as pd
import matplotlib.pyplot as plt
# CSVファイルからPandas DataFrameにデータを読み込む
dataFrame = pd.read_csv("C:\\Users\\amit_\\Desktop\\Cricketers2.csv")
sb.set_theme(style="darkgrid")
# Academy と Matches で棒グラフを描画
# ci に "sd" を指定して観測値の標準偏差を表示
sb.barplot(x = "Academy", y = "Matches", data = dataFrame, ci = "sd")
# グraphを表示
plt.show()
実行結果
このコードを実行すると、アカデミーごとの平均試合数を示す棒グラフと、その標準偏差を表すエラーバーが出力されます。

補足:新しいバージョンのSeabornについて
Seaborn 0.12以降では ci パラメータは非推奨となり、代わりに errorbar パラメータの使用が推奨されています。同様の結果を得るには、次のように記述します。
sb.barplot(x = "Academy", y = "Matches", data = dataFrame, errorbar=("sd", 1))
-
Seabornのswarmplotでorderパラメータを使って表示順序を制御する方法
Seabornのスウォームプロット(Swarm Plot)は、点が重ならないように自動調整されたカテゴリ別散布図を描画するためのグラフです。この描画には seaborn.swarmplot() 関数を使用します。order パラメータに明示的な順序(カテゴリ名のリスト)を渡すことで、特定の列を基準とした表示順序を自由に制御できます。 データセットの準備 ここでは、CSVファイル「Cricketers2.csv」の形式で保存されたデータセットを使用します。 必要なライブラリのインポート import seaborn as sb import pandas as pd import matplot
-
【Python】Seabornのバイオリンプロットでorderパラメータにより表示順序を制御する方法
Seabornのバイオリンプロット(Violin Plot)は、箱ひげ図とカーネル密度推定を組み合わせた可視化手法です。この描画には seaborn.violinplot() 関数を使用します。カテゴリの表示順序を制御したい場合は、order パラメータに明示的な順序を渡すことで実現できます。 ここでは、次のようなCSVファイル「Cricketers.csv」をデータセットとして使用します。 まず、必要なライブラリをインポートしましょう。 import seaborn as sb import pandas as pd import matplotlib.pyplot as plt 続いて、C