Seaborn做图系列①——直⽅图箱型图散点图变量关系图回归图热⼒图条形图数据可视化系列汇总:
Seaborn是在Matplotlib的基础了进⾏更⾼级别的API封装,可以轻轻松松绘制出各式精美且⽅便数据分析的图表,今天主要总结了以下常⽤的⼏种:
直⽅图——distplot , kdeplot,看单变量的分布,是否正态,是否左右偏,有⼏个⾼峰等
箱型图——boxplot,看单变量的分布,常⽤来异常值
散点图——striplot,swarmplot,看单变量的分布,与Excel中两变量相关性分布不太⼀样,这⾥的散点图更像是箱型图
变量关系图——jointplot,pairplot,双变量或多变量的两两关系图,这个就是Excel常见的散点图了
回归图——lmplot,regplot,可以画线性和⾮线性回归
热⼒图——heatmap,直观展⽰两两变量之间的相关程度
条形图——barplot,countplot,前者计算均值,后者计算个数,与Excel中的条形图⾮常类似
直方图与条形图有何区别⼀、直⽅图
① dishist是hist的加强版,kdeplot是密度曲线图,dishist其实已经包含了kdepost
#选择数据并进⾏清洗
data = pd.read_csv('train.csv')
data.drop_duplicates(keep='first',inplace=True)
data.drop(['Cabin'],axis=1,inplace=True)
data.Age.fillna(an(),inplace=True)
data.dropna(how='any',inplace=True)
fig,axes = plt.subplots(2,2)
sns.distplot(data.Age,ax=axes[0,0],kde=True,hist=True) # displot有2个特别的参数kde和hist,True是保留,False是不保留,当hist为False且kde为True时就变成了kde图
sns.kdeplot(data.Age,ax=axes[0,1],shade=True) # kdeplot其实是在displot的基础上去掉了直⽅图,shade是否要填充
sns.distplot(data.Age,ax=axes[1,0],kde=False,color='b')
sns.distplot(data.Age,ax=axes[1,1],hist=False,kde=True,color='g',kde_kws={'shade': True},rug=True)
plt.show()
⼆、箱型图
'''
set_style可设置图像背景格式,常⽤的有:
"whitegrid"—⽩⾊⽹格背景
"darkgrid"——灰⾊⽹格背景
"dark" # 灰⾊背景
"white" # ⽩⾊背景
"ticks" # 四周加边框和刻度
'''
fig = plt.figure()
ax1 = fig.add_subplot(2,3,1)
sns.set_style('whitegrid')
sns.boxplot(y=data.Age,linewidth=0.5) # 换成X就是横着画了
ax2 = fig.add_subplot(2,3,2)
sns.set_style('dark')
sns.boxplot(x='Pclass',y='Age',data=data,palette='Blues_d') # palette是颜⾊,总共有muted,RdBu,Blues_d,Set1,Set2,Set3 ax3 = fig.add_subplot(2,3,3)
sns.set_style('white')
sns.boxplot(x='Pclass',y='Age',hue='Survived',data=data,order=[2,1,3],palette='RdBu') # order可以设定顺序
ax4 = fig.add_subplot(2,3,4)
sns.set_style('darkgrid')
sns.boxplot(x='Pclass',y='Age',hue='Survived',data=data,palette='Set2') # hue是分组绘图,会⽤不同
颜⾊区分
ax5 = fig.add_subplot(2,3,5)
sns.boxplot(data=data,linewidth=0.2)
ax6 = fig.add_subplot(2,3,6)
sns.boxplot(x='Pclass',y='Age',data=data,color='g')
sns.swarmplot(x='Pclass',y='Age',data=data,color='y',linewidth=0.1) # boxplot与swarmplot可以⼀起画出带分布的箱型图
plt.show()
三、散点图
fig,axes = plt.subplots(2,3)
sns.stripplot(y=data.Fare,ax=axes[0,0],linewidth=0.01)
sns.swarmplot(y=data.Fare,ax=axes[0,1]) # swarmplot是带分布的散点图,stripplot是不带分布的
sns.stripplot(x='Pclass',y='Age',data=data,ax=axes[0,2],jitter=True) # jitter是抖动的意思
sns.stripplot(x='Pclass',y='Age',data=data,ax=axes[1,0],hue='Survived',jitter=True)
sns.stripplot(x='Pclass',y='Age',data=data,ax=axes[1,1],hue='Survived',split=True,jitter=True) # hue可以分组,如果再加上split=True,则可以将两个组分开画
sns.swarmplot(x='Pclass',y='Age',data=data,ax=axes[1,2],hue='Survived',split=True)
plt.show()
四、变量关系图
sns.jointplot(x='Age',y='Fare',data=data)
sns.jointplot(x='Age',y='Fare',data=data,kind='reg') # 是带回归线
sns.jointplot(x='Age',y='Fare',data=data,kind='kde',space=0) # 是密度曲线
sns.jointplot(x='Age',y='Fare',data=data,kind='hex',size=5,ratio=3,color='b') # hex是变成六边形
sns.pairplot(data) # 所有变量两两画图
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论