「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のグラフとなりますが、
今回もmatplotlibのfigureメソッドでサイズを指定します。
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の場合は、
matplotlibのfigure でサイズを指定することができません。
その場合はheightとaspectという引数でサイズを指定します。
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さんの動画で勉強させていただきました。
とてもわかりやすくて助かってます!
コメント