散布図 Seaborn scatterplot入門講座 11_01

Python
この記事は約5分で読めます。

「Seabron」で色々なグラフを作成してみる

まずはライブラリのインポートです。

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

グラフを作成するためのデータを用意します。
今回もseabornのライブラリのなかに
予め用意されているデータを使用します。
load_datasetメソッドでデータセットを呼び出すことができます。

今回は、「tips」というデータを使用します。

tips_data = sns.load_dataset('tips')
tips_data

このデータはあるレストランで支払われたチップと、
それに関するデータが格納されています。
-------------------------------------------------------------
total_bill :レストランでの支払い金額(ドル)
tip :チップの金額(ドル)
sex :性別
smoker :喫煙者か禁煙者か
day :曜日(Thu, Fri, Sat, Sun)
time :時間帯(Lunch or Dinner)
size :来店人数(?)
-------------------------------------------------------------
sizeに関しては詳しくわからないみたいです。
グループの人数かな?

散布図

seabornにはscatterplotという散布図を作成できる
メソッドがあります。
setメソッドで、背景色も設定できます。
x軸:total_bill
y軸:tip(チップ)
でグラフを作成します。
デフォルトは6:4のグラフとなりますが、
今回もmatplotlibfigureメソッドでサイズを指定します。

plt.figure(figsize=(9,6))

sns.set(style='darkgrid')
sns.scatterplot(x='total_bill', y='tip', data=tips_data)
plt.show()

カテゴリーごとにプロットを分けてみます。
LunchまたはDinnerを示す、timeというカラムを指定します。
hueという引数に、カテゴリーに指定したいカラム名を渡します。

plt.figure(figsize=(9,6))

sns.set(style='darkgrid')
sns.scatterplot(x='total_bill', y='tip', data=tips_data, hue='time')
plt.show()

カテゴリー毎に別々のグラフとして表示させたい場合は、
前回使用したrelplotメソッドを使います。

ちなみに、relplotは、別々のグラフではなく、
前回のように1つの散布図を作成することもできます。

LunchとDinnerで別々のグラフとして表示さます。
colという引数に、カテゴリーに指定したいカラムを渡します。
そして、散布図を作成したいので、kindという引数にscatterと記述します。

複数のグラフを表示させるrelplotの場合は、
matplotlibfigure でサイズを指定することができません。
その場合はheightaspectという引数でサイズを指定します。
heightは高さ、aspectは高さに対する比率です。

sns.set(style='darkgrid')
sns.relplot(x='total_bill', y='tip', data=tips_data, col='time', kind='scatter', height=3, aspect=1)
plt.show()

今回もkinocodeさんの動画で勉強させていただきました。
とてもわかりやすくて助かってます!

コメント

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