【参考b站视频:一小时带你掌握seaborn可视化教程
跟着视频学习了一下,并记录下来分享给大家~
我是在 pycharm 环境中运行的,用 jupyter notebook会更方便一点哦~】
需要导入的库函数:
import seaborn as sns import pandas as pd import matplotlib.pyplot as plt
*************************************** 多 图 预 警 ***************************************
- 使用 seaborn 画图时需要调用哪些语句,可以参考下边的这幅图:
(具体怎么用,通过后边的代码就能看出来,不急~~)
- 作图前先对数据集进行说明:
### 实验中我们使用seaborn自带的数据集 print(sns.get_dataset_names()) #查看seaborn有哪些自带的数据集
######## seaborn主要分析处理的就是dataframe数据类型 #########
# 加载第一个测试数据集
penguin_df=sns.load_dataset("penguins") #加载数据报错时,参考 https://zhuanlan.zhihu.com/p/452775423
# print(penguin_df)
# 加载第二个测试数据集
tip_df=sns.load_dataset("tips")
# print(tip_df)
################# 画箱型图,查看数据的取值范围,是否存在异常值 ################ ## 数据集中其实是存在缺失值的,但是下边的画图并没有报错,可见seaborn会自动识别空值 sns.boxplot(data=penguin_df,x="bill_length_mm") # 传入的df数据;在x轴上绘制bill_length_mm列数据的分布情况 #sns.boxplot(data=penguin_df,y="bill_length_mm") #在y轴上绘制 #sns.boxplot(data=penguin_df) #不指定画哪列的话,就是每列数据的箱型都在一张图上了 plt.show() #想在pycharm中让seaborn弹出图,需要加上这句话(后续不再强调,大家别忘了加就行)
# 根据最开始给出的那个框架图,boxplot属于catplot大类,所以我们也可以用catplot来画图 sns.catplot(data=penguin_df,x="bill_length_mm",kind="box") #这里要用kind参数来指定画箱型图
##################### 查看变量的分布 ######################## sns.displot(data=penguin_df,x='bill_length_mm') # displot默认是绘制直方图
sns.histplot(data=penguin_df,x='bill_length_mm') #用histplot这个专门画直方图的试一下
sns.displot(data=penguin_df,x='bill_length_mm',bins=50) #调整每个统计区间的大小
sns.displot(data=penguin_df,x="species") #类别变量这列也可以画直方图
###### hue是一个很重要的参数,它可以自动对类别进行解析,加上它画出来的图也很高级 sns.displot(data=penguin_df,x="species",hue="species",shrink=0.7) #shrink来缩小间距
sns.countplot(data=penguin_df,x='species') #根据那个框架图,可以看到countplot是专门针对类别统计的
sns.displot(data=penguin_df,x='bill_length_mm',kde=True) #默认画的直方图,并叠加上kde曲线
sns.displot(data=penguin_df,x='bill_length_mm',kind="kde",hue="species") #kind指定我就是要画kde曲线,用强大的来hue解析类别
sns.displot(data=penguin_df,x='bill_length_mm',kind="kde",hue="species",cut=0)#kde曲线是拟合的,所以存在超出范围的值,用cut参数即可去除不展示
sns.displot(data=penguin_df,x='bill_length_mm',kind="kde",hue="species",cut=0,linewidth=5,color='r') #还可以设置线宽、颜色
########## 利用FaceGrid特性来形成多个子图(根据某两列属性的组合构成多图)######## sns.displot(data=penguin_df,x='bill_length_mm',row='sex',col='island',kind='kde')
sns.displot(data=penguin_df,x='bill_length_mm',row='sex',col='island',hue='species',kind='kde') # hue它又来喽~~
#################### 数值变量的关系分析 ####################### sns.relplot(data=tip_df,x='total_bill',y='tip') #绘制散点图
sns.relplot(data=tip_df,x='total_bill',y='tip',hue='time',style='time',markers=['o','^']) #后边可以加一些参数,区分不同的类别
sns.relplot(data=tip_df,x='total_bill',y='tip',hue='size',size='size') #还可以设置点的大小变化
sns.relplot(data=tip_df,x='total_bill',y='tip',col='day',col_wrap=2) #按“day”列划分多子图,放在一行太挤太丑了,用col_wrap设置一行两个
########################## 线性关系分析 ######################### ##基于上边画的散点,我们就想着是否能找到一个线性回归的函数进行拟合 sns.lmplot(data=tip_df,x='total_bill',y='tip')
sns.regplot(data=tip_df,x='total_bill',y='tip') #专门画回归的函数
sns.lmplot(data=tip_df,x='total_bill',y='tip',row='smoker',col='time',hue="time") #画子集的多图
持续更新中……



