Python数据分析-绘图-2-Seaborn进阶绘图-2-关系图

一、散点图:scatterplot

函数:seaborn.scatterplot

常用参数:

x,y array,str,series,输入变量。字符串应该是data中对应的变量名,使用series将会在轴上显示名称。
data 接收DataFrame,表示用于绘图的数据集。
hue 接收data中的变量名,传入分类变量,以颜色分类。
size 接收data中的变量名,传入分类变量,以标记大小分类。
sizes 接收list,dict,tuple,确定不同级别的size。可以一一映射,也可以设置最大最小的范围。
style 接收data中的变量名,传入分类变量,以标记形状分类。
markers bool,list,dict,确定不同级别的style。
alpha float,“auto”,点的透明度。默认为“auto”
legend “brief”,“full”,False。图形图例绘制形式,默认为“brief”
palette 调色板,改变默认绘图颜色。

1.两个变量基础作图

import seaborn as sns
from matplotlib import pyplot as plt
tips=sns.load_dataset('tips')
#注意:这里在下载数据集时报错了,原因是请求被服务器拒绝了我们可以去官方数据集网站上https://github.com/mwaskom/seaborn-data把数据集下载到Seaborn-data文件夹中,再执行语句就可以了。

#使图形正常显示中文
plt.rcParams['font.sans-serif']='SimHei'
plt.rcParams['axes.unicode_minus']=False
#观察数据
tips.head()
>

  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

#画图
ax=sns.scatterplot(x='total_bill',y='tip',data=tips)
ax.set_title('总账单与小费散点图')

Python数据分析-绘图-2-Seaborn进阶绘图-2-关系图_第1张图片

 2.通过添加第三个变量来分类变量

(1)对点着色和改变标记来显示分组变量

sns.scatterplot(x='total_bill',y='tip',hue='time',style='time',data=tips)

Python数据分析-绘图-2-Seaborn进阶绘图-2-关系图_第2张图片

 (2)通过改变点的大小并添加连续颜色来显示定量类别变量

sns.scatterplot(x='total_bill',y='tip',size='size',hue='size',data=tips)

Python数据分析-绘图-2-Seaborn进阶绘图-2-关系图_第3张图片

(3)使用自定义的分组点标记

markers={'Lunch':"o","Dinner":"X"}
sns.scatterplot(x="total_bill",y="tip",style="time",hue="time",markers=markers,data=tips,palette='Set2')

 Python数据分析-绘图-2-Seaborn进阶绘图-2-关系图_第4张图片

 (4)也可以向scatterplot函数中传入matplotlib参数控制绘图元素

sns.scatterplot(x="total_bill",y="tip",data=tips,color='red')
plt.title('总账单与小费散点图')

Python数据分析-绘图-2-Seaborn进阶绘图-2-关系图_第5张图片

二、折线图:lineplot 

函数:seaborn.lineplot

常用参数:

x,y
data
dashes bool,list,dict,确定不同级别的style
estimate 接收pandas方法或可调用函数,接收y在同一个x级别的聚合方法。
ci int,“sd”,None,表示使用estimate聚合的置信区间大小,“sd”表示数据标准差。
n_boot 表示计算置信区间个数。
sort bool,表示按照x和y变量排序或出现顺序排序。
err_style

"band“,”bars“,表示是使用半透明误差带还是离散误差棒绘制置信区间,默认为”band“

err_band

dict,用于控制误差线条的参数。

用fmri数据集绘制用颜色和线条样式显示分类变量的折线图。

sns.lineplot(x="timepoint",y="signal",hue="event",style="event",data=fmri)

Python数据分析-绘图-2-Seaborn进阶绘图-2-关系图_第6张图片

 使用点标记折线图的转折:

sns.lineplot(x="timepoint",y="signal",hue="event",style="event",markers=True,data=fmri)

Python数据分析-绘图-2-Seaborn进阶绘图-2-关系图_第7张图片

修改误差带显示形式与置信区间大小

sns.lineplot(x="timepoint",y="signal",hue="event",style="event",err_style="bars",ci=80,data=fmri)

 Python数据分析-绘图-2-Seaborn进阶绘图-2-关系图_第8张图片

使用dots数据集绘制折线图,设置sizes参数,更改size传入变量的线条宽度。

dots=sns.load_dataset('dots')
dots.head()
>
   align choice time coherence	firing_rate
0	dots	T1	-80	 0.0	     33.189967
1	dots	T1	-80	 3.2	     31.691726
2	dots	T1	-80	 6.4	     34.279840
3	dots	T1	-80	 12.8	     32.631874
4	dots	T1	-80	 25.6	     35.060487

ax1=sns.lineplot(x="time",y="firing_rate",size="coherence",hue="choice",style="align",data=dots,palette="Set1")
ax1.set_title("默认线宽")

 Python数据分析-绘图-2-Seaborn进阶绘图-2-关系图_第9张图片

 自定义线宽:

ax2=sns.lineplot(x="time",y="firing_rate",size="coherence",sizes=(0.5,1.5),hue="choice",style="align",data=dots,palette="Set1")
ax2.set_title("自定义线宽")

Python数据分析-绘图-2-Seaborn进阶绘图-2-关系图_第10张图片

 三、分面绘图:relplot

能够同时访问scatterplot和lineplot绘制多图网格的关系图。

函数:seaborn.relplot

常用参数:

x,y

data

row,col 接收data中的变量名,传入分类变量,决定网格图的分面。
row_order,col_order 接收list,传入分类变量类别名称列表并以此为顺序。
kind 接收”scatter“”line“,选择绘图函数。默认为scatter
height 接收scalar,表示网格图的高度,默认为5.
aspect 网格图的宽度,默认为1.
facet_kws 接收dict,表示传递给FacetGrid的其他参数,默认为”auto“

使用tips数据集,先绘制单构面散点图:

sns.set(style='ticks')
sns.relplot(x="total_bill",y="tip",hue="day",data=tips)

Python数据分析-绘图-2-Seaborn进阶绘图-2-关系图_第11张图片

 传入分类变量smoker和time到row和col中,可以绘制网格图。

sns.set(style='ticks')
sns.relplot(x="total_bill",y="tip",hue="sex",row="time",col="smoker",data=tips)

Python数据分析-绘图-2-Seaborn进阶绘图-2-关系图_第12张图片

参数col_wrap可以控制列数:

sns.set(style='ticks')
sns.relplot(x="total_bill",y="tip",hue="sex",col="smoker",col_wrap=1,data=tips)

 Python数据分析-绘图-2-Seaborn进阶绘图-2-关系图_第13张图片

 使用fmri数据集绘制网格折线图:

sns.relplot(x="timepoint",y="signal",col="event",data=fmri,kind="line")

Python数据分析-绘图-2-Seaborn进阶绘图-2-关系图_第14张图片

 

你可能感兴趣的:(python,数据分析,开发语言,数据可视化)