seaborn关注的是统计量之间的关系。
x,y一般为数值型数据,关注两个数值变量之间的关系
可以绘制出曲线图和散点图
- relplot():
- sns.replot(kind=“scatter”),相当于scatterplot() 用来绘制散点图
- sns.replot(kind=“line”),相当于lineplot() 用来绘制曲线图
本例中,我们的数据集采用库自带的小费数据集tips。
tips小费数据集:
是一个餐厅服务员收集的小费数据集,包含了7个变量:
总账单、小费、顾客性别、是否吸烟、日期、吃饭时间、顾客人数
replot常用参数
x: x轴
y: y轴
hue: 在某一维度上,用颜色区分
style: 在某一维度上, 用线的不同表现形式区分, 如 点线, 虚线等
size: 控制数据点大小或者线条粗细
col: 列上的子图
row: 行上的子图
kind: kind= ‘scatter’(默认值)
kind='line’时候,可以通过参数ci:(confidence interval)参数,来控制阴影部分,如,ci=‘sd’ (一个x有多个y值)
也可以关闭数据聚合功能(urn off aggregation altogether), 设置estimator=None即可
data
以下,结合具体使用效果来理解一下。
replot出的图默认为散点图。
可以看出,消费高的小费多。
参数hue
hue
用不同的颜色区分出来
在smoker维度,smoker:取值有:No、Yes 蓝yes橙no
图上有3个维度的信息:
total_bill(x)、tip(y)、smoker(不同颜色)
hue+ hue_order
可以通过hue_order(一个list)来控制图例中hue的顺序。如果不设置的话,就会自动根据data来进行设定。
如果hue是数字型连续值,hue_order就没有什么关系了。
hue+palette
palette自定义颜色范围
跟哪天吃饭好像没什么关系,看不出来一个渐变色的走势。
参数style
style
不同的表示形状上区分
性别维度上,不同的性别, 原点:Male 叉叉:Female
图上有3个维度的信息:
total_bill、tip、sex
x、y、不同形状
可以看出,给小费的男性多,男性给的小费高一点,是不是?你还可以看出来什么信息呢?
hue+style
hue+style
抽烟的女性:蓝色+叉叉
抽烟的男性:蓝色+原点
不抽烟的女性:橘色+叉叉
不抽烟的男性:橘色+原点
图上有4个维度的信息了:
total_bill、tip、smoker、sex
x、y、不同颜色、不同形状
看出了什么?
给高小费的(超过5的),竟然大都是不抽烟的男性(橘色+原点)
参数size
控制点的大小或者线条粗细
巧妙引入size维度(顾客人数)信息
图上有5个维度的信息了
图上可以看出,人多消费大,消费大小费高
你还看出了什么呢?
展示的信息量太多了,太丰富了,这个图反而太复杂而让我们不好解析它了
size+sizes
如用size=(20,200)控制size的范围
数据集为fmri
先用散点图看一下它的数据分布情况:
kind=“line”
kind=“line” 就是lineplot()
一个x有多个y,怎么聚合呢?默认的是aggregate the multiple measurements at each x value by plotting the mean and the 95% confidence interval around the mean:
ci=None 控制不显示聚合的阴影
ci=“sd” 控制聚合的算法
关闭聚合:estimator= None
展示其数据最原始的情形,“曲线版的散点图”:
hue:利用颜色区分
style:利用形状区分
hue+ style
style结合dashes+markers可设置不同分类的标记样式
units: ??我没有明白这个
当有多次的采样单位时,可以单独绘制每个采样单位,而无需通过语义区分它们。这可以避免使图例混乱。
说了这么多还是没有明白。。。。。
lineplot色调和图例的处理还取决于hue是分类型数据or连续型数据
hue为连续型数值
相关性coherence是连续型数值
看看图例看看颜色:
颜色越重的相关性越强
size: 可用来控制线条宽度
也可以用size表达coherence
相关性越大,线条越粗
seaborn结合matplotlib的xlim()和ylim()设置坐标范围
参数col、row可以帮助我们实现。
col=“sex” 有几种sex,就有几列图(2种male和female,2列图)
row=“smoker” 有几种smoker,就有几行图
col=“subject”, col_wrap=3 subject特别多,可以控制显示的图片的行数