【Seaborn】seaborn.barplotの引数一覧

Python

【はじめに】

今回は、Seabornのseaborn.barplotメソッドの引数を一覧にしました。

SeabornはMatplotlibの機能をより美しく、より簡単に実現するための可視化ライブラリです。

Seabornの特徴として、Matplotlibベースで作られているため、折れ線グラフや棒グラフ、散布図などの基本的なグラフ描画はMatplotlibの機能を利用していることが挙げられます。

Matplotlibの基礎を固めた方は、この機会にマスターしていきましょう。

本記事の内容

  • seaborn.barplotの引数一覧
  • seabornで棒グラフを作成する
  • 複数の棒グラフを出力する

【seaborn.barplotの引数一覧】

seaborn.barplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None,
                estimator=<function mean>, ci=95, n_boot=1000, units=None,
                orient=None, color=None, palette=None, saturation=0.75,
                errcolor='.26', errwidth=None, capsize=None, ax=None, **kwargs)
引数 指定する値
x, y 集計対象の列名。x に指定した場合縦方向に、y に指定した場合横方向にグラフを描画する。
hue 各軸をさらに分割して集計する場合に利用する列名を指定。
data 集計対象のデータフレーム。
order 出力する順番を文字列のリストで指定。
hue_order 上記 hue で指定した列を出力する順番を文字列のリストで指定。
estimator (デフォルト値: )
ci 信頼区間の幅。None を指定すると、ブートストラップを行わず、エラーバーも出力しない。 (デフォルト値: 95)
n_boot 信頼区間を求めるために行うブートストラップの繰り返し回数。 (デフォルト値: 1000)
units マルチレベルでブートストラップを行う際にサンプリング単位。data で指定したデータフレームの列名または、配列で指定。 (デフォルト値: None)
orient グラフの向きを指定。”v”(vertical, 垂直) または、”h” (horizontal, 水平) のいずれかを指定。
color 各列の色をリストまたはパレットで指定。
palette 上記 hue で指定した列の色リストまたはパレットで指定。 (デフォルト値: None)
saturation 色の彩度。1 に近いほど原色に近く、0 に近いほど白・黒に近い色合いで出力。 (デフォルト値: 0.75)
errcolor 信頼区間を示すバーの色。/td>
errwidth 信頼区間を示すバーの幅
capsize 信頼区間を示すバーの終端の線(キャップ)のサイズ
ax 軸を重ねて出力する場合に指定。

【seabornで棒グラフを作成する】

seaborn.barplotは与えられたベクトル (数値で構成される配列) の平均値を高さとして、信頼区間をエラーバーとして出力します。

使用するデータは、seabornのライブラリの中から「tips(飲食店のチップの額)」を使用します。

import matplotlib.pyplot as plt
import seaborn as sns
import japanize_matplotlib
%matplotlib inline

tips = sns.load_dataset('tips')
tips.head()

total_billtipsexsmokerdaytimesize
016.991.01FemaleNoSunDinner2
110.341.66MaleNoSunDinner3
221.013.5MaleNoSunDinner3
323.683.31MaleNoSunDinner2
424.593.61FemaleNoSunDinner4

それぞれのカラムは次の情報を表しています。

  • total_bill : 総支払額(食事代、税込み) (USドル)
  • tip : チップ(USドル)
  • sex : 性別
  • smoker : 喫煙者か否か
  • day : 曜日(木・金・土・日のいずれか)
  • time : 食事の時間(昼食か夕食か)
  • size : 人数

X軸とY軸、集計対象のデータを指定して棒グラフを作成する | x, y, data

引数xに「day」, yに「total_bill」, dataに「tips」を指定して棒グラフを作成します。

sns.barplot(x='day', y='total_bill', data=tips)

Image from Gyazo
ポイント
作成された棒グラフの高さは、平均額を表しています。

曜日に対する支払総額を「男女別」に棒グラフに出力する | hue

引数huesexを指定して、棒グラフを作成します。

sns.barplot(x='day', y='total_bill', data=tips, hue='sex')

Image from Gyazo

横方向の棒グラフを作成する

X軸に数値データの「total_bill」、Y軸に「day」を指定して横方向に棒グラフを作成します。

sns.barplot(x='total_bill', y='day', data=tips)

Image from Gyazo
ポイント
X軸に数値データ、Y軸に離散変数を指定することで横方向の棒グラフを作成することが出来ます。

グラフに出力するX軸の順番を指定する | order

引数xに「time」、yに「tip」を指定して、昼食と夕食ごとのチップ額の平均をグラフにしてみます。

# 引数orderを指定しない場合
sns.barplot(x="time", y="tip", data=tips)

Image from Gyazo
引数orderにグラフに出力する順番をリストで指定して、棒グラフを作成してみます。

# 引数orderを指定する場合
sns.barplot(x="time", y="tip", data=tips, order=['Dinner', 'Lunch'])

Image from Gyazo

信頼区間を指定して、棒グラフを作成する | ci

引数ciに信頼区間の数値を%で指定して、棒グラフを作成します。

信頼区間はデフォルトでは95%です。

sns.barplot(x='day', y='total_bill', data=tips, ci=68)

Image from Gyazo
ポイント
信頼区間とは、「母集団から標本を取ってきて、その平均からx%信頼区間を求める、という作業を100回やったときに、x回はその区間の中に母平均が含まれる」という「頻度」もしくは「割合」を意味します。

信頼区間を示すバーの終端の線(キャップ)のサイズを指定する | capsize

sns.barplot(x="day", y="total_bill", data=tips, capsize=0.2)

Image from Gyazo

バーの色を指定する | color

引数colorに色を指定すると、バーの色を統一することが出来ます。

sns.barplot(x="day", y="total_bill", data=tips, color='orange')

Image from Gyazo

カラーパレットを使用して棒グラフを作成する | palette

引数paletteにカラーパレットを指定することで、バーの色にグラデーションをつけます。

seaborn.dark_palette — seaborn 0.13.2 documentation
seaborn.light_palette — seaborn 0.13.2 documentation
seaborn.diverging_palette — seaborn 0.13.2 documentation
sns.barplot(x="day", y="total_bill", data=tips, palette="Greys")

Image from Gyazo

線の太さ、線の色、エラーバーの色を指定する | linewidth, edgecolor, errcolor

sns.barplot(x="day", y="total_bill", data=tips, palette="Blues", linewidth=3.5, edgecolor="navy", errcolor="skyblue")

Image from Gyazo

【複数の棒グラフを出力する】

figureオブジェクトとaxesオブジェクトを作成することで、グラフを描画するスペースの大きさ(幅、高さ)とその中にいくつのグラフを作成するかを指定することが出来ます。

複数の棒グラフを出力する | ax

# figureオブジェクトとaxesオブジェクトの作成
fig, ax = plt.subplots(3, 3, figsize=(25,20))

sns.barplot(x='day', y='total_bill', data=tips, ax=ax[0,0])
sns.barplot(x='day', y='total_bill', data=tips, hue='sex', ax=ax[0,1])
sns.barplot(x='total_bill', y='day', data=tips, ax=ax[0,2])
sns.barplot(x="time", y="tip", data=tips, order=['Dinner', 'Lunch'], ax=ax[1,0])
sns.barplot(x='day', y='total_bill', data=tips, ci=68, ax=ax[1,1])
sns.barplot(x="day", y="total_bill", data=tips, capsize=0.2, ax=ax[1,2])
sns.barplot(x="day", y="total_bill", data=tips, color='orange', ax=ax[2,0])
sns.barplot(x="day", y="total_bill", data=tips, palette="Greys", ax=ax[2,1])
sns.barplot(x="day", y="total_bill", data=tips, palette="Blues", linewidth=3.5, edgecolor="navy", errcolor="skyblue", ax=ax[2,2])

【さいごに】

今回は、Seabornのseaborn.barplotメソッドの引数を紹介しました。
Matplotlibよりもキレイで複数のグラフを一気に出力できるので、使いこなせるようになるとかなりスキルアップできると思います。

また、使用したCSVファイルやJupyter NotebookはGitHubに公開しています。
Jupyter Notebookは下記コマンドでダウンロードできるので、自由に使って是非練習してみてください。

$ curl https://raw.githubusercontent.com/nakachan-ing/python-references/master/Matplotlib%26Seaborn/seaborn.barplotの引数.ipynb -O
python-references/Matplotlib&Seaborn at master · nakachan-ing/python-references
Contribute to nakachan-ing/python-references development by creating an account on GitHub.
seaborn.barplot — seaborn 0.13.2 documentation

コメント

タイトルとURLをコピーしました