seaborn实例 - relplot - 散点图
seaborn
官网:seaborn: statistical data visualization
统计数据可视化
这个库是基于matplotlib做了一层封装,用起来真的非常方便,简单多了
Seaborn is a Python data visualization library based on matplotlib. It provides a high-level interface for drawing attractive and informative statistical graphics.
seaborn.relplot
seaborn.relplot(x=None, y=None, hue=None, size=None, style=None, data=None, row=None, col=None, col_wrap=None, row_order=None, col_order=None, palette=None, hue_order=None, hue_norm=None, sizes=None, size_order=None, size_norm=None, markers=None, dashes=None, style_order=None, legend='brief', kind='scatter', height=5, aspect=1, facet_kws=None, **kwargs)
Figure-level interface for drawing relational plots onto a FacetGrid.
这个函数是用来绘制关系数据,比如散点图,前面使用matplotlib绘制散点图,再看看这里来绘制,特别方便
我们直接来看个例子好了
散点图
先加载下数据集
import pandas as pd
import seaborn as sns
tips = sns.load_dataset("tips")
这个tips就是一个普通的DataFrame
这个数据集,看上去是一个账单对应的小费
- total_bill 账单总金额
- tip 小费
- sex 服务员性别??
- smoker 是否吸烟?
- day 周几
- time 时间段,午餐晚餐什么的
- size 难道是就餐人数??
暂时没找到对于数据集的介绍,先这么理解吧,暂时不影响使用
1. 绘制散点图
sns.relplot(x='total_bill' , y='tip' , data=tips)
和matplotlib中scatter用起来差不多
2. 设置不同维度不同颜色、大小、样式
好了,假设我们想要给不同的维度设置不同的颜色,怎么做呢?
在matplotlib中,我们需要手工指定颜色,或者使用colormap
但是在seaborn中,非常简单
sns.relplot(x='total_bill' , y='tip' , hue='day' , data=tips)
看看,通过一个参数,就可以根据不同的day,显示不同的颜色了
和hue
类似的参数,还有size
he style
sns.relplot(x='total_bill' , y='tip' , style='day' , data=tips)
sns.relplot(x='total_bill' , y='tip' , size='day' , data=tips)
3. 不同的维度,显示单独的看板
如果使用matplotlib,需要我们自己设置看板数量,然后分别绘制,在seaborn中,就是一个参数的问题
sns.relplot(x='total_bill' , y='tip' , col='day' , data=tips)
我们使用col
就是按列显示,还可以使用row
来按行显示
sns.relplot(x="total_bill", y="tip", hue="day",
col="time", row="sex", data=tips)
还有很多参数,后续再探索一下