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()
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iGlxlnp5-1586270983327)(output_3_0.png)]](/https://i-blog.csdnimg.cn/blog_migrate/3046e6b9b734c6851c50b7625cffb9e7.png)
上图分析出的结论
- 用餐时间, 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()
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BBjK3gHV-1586270983330)(output_6_0.png)]](/https://i-blog.csdnimg.cn/blog_migrate/7d43ce8eb7b89fc2060330d7b058f3cd.png)
直方图
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()
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Jh9N5i9V-1586270983333)(output_11_0.png)]](/https://i-blog.csdnimg.cn/blog_migrate/8437a14ddfa84f2a207e91dc90a53a6c.png)
swarm散点图
sns.catplot(x='smoker', y='tip', kind='swarm', hue='sex', data=tips)
plt.show()
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jV7Oe8Cc-1586270983335)(output_13_0.png)]](/https://i-blog.csdnimg.cn/blog_migrate/2740390e4f65dc0a94e78cb8b87952f3.png)
线性关系
total_bill与bill成线性关系
sns.regplot(x='total_bill', y='tip', data=tips)
plt.show()
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ULFmkciH-1586270983336)(output_15_0.png)]](/https://i-blog.csdnimg.cn/blog_migrate/b586f30667f776da0598f054d264d5b2.png)
本文通过分析Seaborn库中的tips小费数据集,揭示了用餐时间、性别与消费及小费的关系。发现Dinner用餐次数多于Lunch,男性消费者多于女性,且Lunch的大额消费与小费多于Dinner。同时,展示了total_bill与tip的线性关系。利用箱形图、直方图、小提琴图和swarm散点图进行深入的数据可视化解析。
776

被折叠的 条评论
为什么被折叠?



