這篇記錄我在使用 seaborn 做資料分析還有 visualization 時常用的 code.
一般慣例會把 seaborn 更名成 sns
for reference.
%matplotlib inline
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
基本設定¶
這邊值得注意的是要調整的參數要一次全部設定, 用好幾次 set()
的話只有最後一次的 set()
的結果會被保留
sns.set(font='IPAPMincho', font_scale=1.8)
Histogram¶
data = np.random.randn(1000)
data[:10]
seaborn 是建立在 matplotlib 之上, 因此 matplotlib 也可以直接拿來跟 seaborn 產生的圖互動
plt.figure(figsize=(10, 5))
plt.subplot(1, 2, 1)
plt.title('Defualt style with kde')
sns.distplot(data, kde=True);
plt.subplot(1, 2, 2)
sns.set_style('dark')
plt.title('Dark style without kde');
sns.distplot(data, kde=False);
Scatter plot¶
df = pd.DataFrame({
'x': np.random.randn(100),
'y': np.random.randn(100)})
df.head(5)
要使用 seaborn 初始設定就再呼叫一次 set()
sns.set()
注意點:
- 一般用lmplot畫, 然後設定
fit_reg=False
就可以讓 regression line 消失. 有時候有沒有那條線影響圖很大 - 一樣先
x
, 再y
for fit_reg in [True, False]:
sns.lmplot('x', 'y',
data=df,
fit_reg=fit_reg,
scatter_kws={"marker": "D", "s": 100})
title = 'Show regression line' if fit_reg else 'Without regression line'
plt.title(title)
想要將兩個 lmplot
並排 render 可以參考這個 stackoverflow 答案.
Correlation matrix / Heatmap¶
df = pd.DataFrame({
'x1': np.random.randn(100),
'x2': np.random.randn(100),
'x3': np.random.randn(100)
})
df.head()
這邊利用 pandas 本身的 corr()
計算 correlation matrix 然後使用 seaborn 做 vis.
corr = df.astype(float).corr()
corr
sns.set(font_scale=1.5)
sns.heatmap(corr, cmap='Blues', annot=True, annot_kws={"size": 15},
xticklabels=corr.columns.values,
yticklabels=corr.columns.values);
References¶
跟資料科學相關的最新文章直接送到家。 只要加入訂閱名單,當新文章出爐時, 你將能馬上收到通知