import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
# 使用默認的seaborn主題
sns.set()
tips小費數據集
- total_bill: 總金額
- tip: 小費金額
- sex: 性別
- smoker: 是否抽菸
- day: 周幾
- time: 午飯(Lunch), 晚餐(Dinner)
- size: 用餐人數
tips = sns.load_dataset('tips')
tips.head(5)
total_bill | tip | sex | smoker | day | time | size | |
---|---|---|---|---|---|---|---|
0 | 16.99 | 1.01 | Female | No | Sun | Dinner | 2 |
1 | 10.34 | 1.66 | Male | No | Sun | Dinner | 3 |
2 | 21.01 | 3.50 | Male | No | Sun | Dinner | 3 |
3 | 23.68 | 3.31 | Male | No | Sun | Dinner | 2 |
4 | 24.59 | 3.61 | Female | No | Sun | Dinner | 4 |
# style 代表形狀, hue代表顏色
sns.relplot(x="total_bill", y="tip", col="time", hue='sex', style="smoker", size="size", data=tips)
plt.show()
上圖分析出的結論
- 用餐時間, Dinner數明顯大於Lunch
- Male明顯多於Female
- 小額消費較多
- Lunch比Dinner大筆消費和小費多
- total_bill與tip呈線性關係
箱形圖
下圖可看出:
- Male明顯多於Female
- Dinner用餐量明顯大於Lunch
sns.catplot(x='time', y='total_bill', kind='box', hue='sex', data=tips)
plt.show()
直方圖
total_bill主要集中在 10~20
sns.distplot(tips['total_bill'], kde=False)
plt.show()
小提琴
下圖可看出:
- 大額消費主要集中在Dinner時間段的的男性
- 大額小費主要集中在Dinner時間段的的男性
sns.catplot(x='time', y='total_bill', hue='sex', kind='violin', data=tips)
plt.show()
sns.catplot(x='time', y='tip', hue='sex', kind='violin', data=tips)
plt.show()
swarm散點圖
sns.catplot(x='smoker', y='tip', kind='swarm', hue='sex', data=tips)
plt.show()
線性關係
total_bill與bill成線性關係
sns.regplot(x='total_bill', y='tip', data=tips)
plt.show()