【Python数据分析】超详细的可视化教程(二):利用Seaborn进行静态图可视化

上一章matplotlib的教程:
准备工作:
import……

这和上期用一样的数据集

一、线图

用到的函数:lmplot() reg()
这两个函数相似参数结构:(x=,y=,data=)是必选项
他们的优点是:会直接将变量名作为xy轴标签
不同点:lm可以取消回归线但不能取消散点,reg能取消散点但不能取消对称
这一不同点恰好体现了他们的侧重点

为了看清楚散点,我们只选取前100个

dta=data[0:100]
sns.lmplot(x='average_montly_hours',y='satisfaction_level',data=dta)
#必备的要素:x=,y=,data=,而且要写全
plt.title("都有") #仍然使用mat来编辑附件
plt.savefig("sns_lm_both",bbox_inches='tight') 
#bbox_inches='tight' 让图片标题显示完
#猜测原因是mat与sns之间差异造成的

在这里插入图片描述
去掉回归线:

sns.lmplot(x='average_montly_hours',y='satisfaction_level',fit_reg=False,data=dta)
plt.title("fit_reg=False")
plt.savefig("sns_lm_sc",bbox_inches='tight')

在这里插入图片描述

regplot去掉散点:

sns.regplot(x='average_montly_hours',y='satisfaction_level',scatter=False,data=dta)
plt.title("scatter=False")
plt.savefig("sns_reg_sc",bbox_inches='tight')

在这里插入图片描述

二、直方图histplot

记录频数还有一个函数是countplot,但它已经与新版numpy不兼容,容易出现图例贴不上的情况,故舍弃
histplot有良好的性能,不算太丑的默认色彩,自动图例,多种堆叠方式

1.离散变量

#直方图histplot
plt.subplots(2,2,figsize=(10,10))
plt.subplot(2,2,1)
sns.histplot(x='salary',hue='left',multiple="dodge",shrink=.8,data=dta1)
#multiple 堆叠样式
#shrink 间距
plt.title('dodge')
plt.subplot(2,2,2)
sns.histplot(x='salary',hue='left',multiple="layer",shrink=.8,data=dta1)
plt.title('layer')
plt.subplot(2,2,3)
sns.histplot(x='salary',hue='left',multiple="fill",shrink=.8,data=dta1)
plt.title('fill')
plt.subplot(2,2,4)
sns.histplot(x='salary',hue='left',multiple="stack",shrink=.8,data=dta1)
plt.title('stack')
plt.savefig("sns_hist")

结果在这里插入图片描述
2.连续变量
连续变量时,可以和kde联合

#【与kde】
sns.histplot(x='satisfaction_level',kde=True,fill=False,data=dta1)
#fill=False 不填充颜色
plt.savefig("sns_hist_kde")

在这里插入图片描述
3.双y轴,显示频数和密度

fig,ax1=plt.subplots()
sns.histplot(x='satisfaction_level',ax=ax1,fill=False,data=dta1)
#fill=False,不填充颜色
ax2=ax1.twinx()#共用x轴
sns.kdeplot(dta1.satisfaction_level,ax=ax2)
#!!注意kde独特的参数格式!!
plt.title('sns_hist_kde')
plt.savefig('sns_hist_kde_y',bbox_inches='tight')

在这里插入图片描述

三、箱型图boxplot和小提琴图violinplot

小提琴图=boxplot+kdeplot

#【箱型图和小提琴图】
fig , (ax1,ax2)= plt.subplots(1,2,figsize=(10,8)) 
#应当设置figsize,否则可能出现xlable和坐标轴重叠的情况
sns.boxplot(dta1[['satisfaction_level','last_evaluation']],notch=True,ax=ax1,showmeans=True)
#notch,显示切口
#showmeans=True 显示平均数
ax1.set_title('boxplot') #没有用subplot控制位置,应当针对ax1修改
sns.violinplot(dta1[['satisfaction_level','last_evaluation']],ax=ax2,palette=sns.color_palette("pastel"))
#palette上色
ax2.set_title('violinplot')
fig.subplots_adjust(wspace=0.4)#wspace,hspace 控制子图间距
plt.savefig("sns_box_violin")

在这里插入图片描述

四、联合图:jointplot()+kind

两个变量,一个坐标可以得知两个变量的值

##【联合图:jointplot()+kind】
sns.set_theme(style="whitegrid") #生成背景
sns.jointplot(x='last_evaluation',y='satisfaction_level',data=dta1,kind='kde')
plt.yticks(np.arange(0,1.2,.1)) #yticks(数组),来改变y轴刻度间隔
#kind可以更换图片形式
plt.savefig("sns_joint")

在这里插入图片描述

五、热力图heatmap,配对图pairplot

放在一起是因为两种图都在刻画相关性

1. 热力图

#【热力图】
cor_matrix=dta1.corr(numeric_only=True) #算出相关性矩阵
#heat与其他图最大的不同就是,它需要的矩阵
sns.heatmap(cor_matrix,annot=True,cmap=sns.color_palette("ch:start=.2,rot=-.3", as_cmap=True))
#annot=False 可以关闭数值显示
plt.savefig("sns_heatmap")

在这里插入图片描述
2. 配对图

#【配对图:pairplot】
sns.pairplot(dta[['satisfaction_level','average_montly_hours','last_evaluation']])#会自动筛选出数值
plt.savefig('sns_pair_plot')

在这里插入图片描述

改变样式

sns.pairplot(dta[['satisfaction_level','average_montly_hours','last_evaluation']],diag_kind='kde')
#diag_kind改变对角线样式
#kind改变其余样式
plt.savefig('sns_pair_plot_kde')

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值