Python-Seaborn绘制图形

在这里插入图片描述
一、Seaborn特点
Seaborn是在matplotlib基础上进行更高级的API封装,常在绘制统计图形时使用。

二、加载数据构建Seaborn图像并设置主题格式
可以使用sns.load_dataset()函数来加载内置的Seaborn数据集,利用sns.set()来设置主题格式。
Seaborn有五个预设的主题:darkgrid,whitegrid,dark,white,ticks,默认darkgrid。
sns.set(style=‘darkgrid’,context=‘notebook’,palette=‘muted’)

#配置环境
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
from scipy.stats import *
#主题格式设置
sns.set(style='darkgrid',context='notebook',palette='muted')

#加载数据
tipsDf=sns.load_dataset('tips')
sns.boxplot(x='sex',y='total_bill',hue='smoker',data=tipsDf)

在这里插入图片描述

三、绘制各类Seaborn图像
displot()/kdeplot()/boxplot()/jointplot()/heatplot()/pairplot()/FacetGrid()等用法
常见参数:
kde:密度曲线
hist:直方图
shade:阴影
rug:边际毛毯
cumulative:累加
fit:拟合曲线
color:设置颜色
hue:色相(分类)
hist_kws, kde_kws, rug_kws, fit_kws参数接收字典类型,可以自行定义更多高级的样式

1.分布/密度:displot()及kdeplot()
distplot(分布)以及kdeplot(概率密度函数)

#通:sns.kdeplot(Df['连续变量'],shade=True,rug=True)
irisDf=sns.load_dataset('iris')
plt.subplot(1,2,1)
sns.distplot(irisDf['petal_length'],kde=True,rug=True) #kde密度曲线 rug边际毛毯
plt.subplot(1,2,2)
sns.kdeplot(irisDf['petal_length'],shade=True) #shade阴影

在这里插入图片描述
分布图distplot()

#通:sns.distplot(Df['连续变量'],kde=True,hist=True,rug=True,color='',kde_kws={'shade':True},fit=norm)
plt.figure(figsize=(7,7))
plt.subplot(2,2,1)
sns.distplot(irisDf['sepal_length'],kde=False,color='b')
plt.subplot(2,2,2)
sns.distplot(irisDf['sepal_length'],hist=False,rug=True,color='r',fit=norm)
plt.subplot(2,2,3)
sns.distplot(irisDf['sepal_length'],hist=False,kde_kws={'shade':True})
plt.subplot(2,2,4)
sns.distplot(irisDf['sepal_length'],color='m')
plt.show()

在这里插入图片描述
二元kde图像:kdeplot()

#二元kde图像:sns.kdeplot(con_var1,con_var2,cbar=True,shade=False)
x=np.random.randn(100)
y=np.random.randn(100)
sns.kdeplot(x,y,cbar=True)

在这里插入图片描述

2.箱型图:boxplot()

#通:sns.boxplot(x='',y='',data=Df,hue='')
sns.boxplot(x='species',y='sepal_length',data=irisDf)
plt.show()

在这里插入图片描述

#箱型图2
#通:sns.类型(x='',y='',data=Df,hue='')
tipsDf=sns.load_dataset('tips')
sns.boxplot(x='sex',y='total_bill',hue='smoker',data=tipsDf)

在这里插入图片描述

3.联合分布图:joinplot()
两个连续变量之间关系:Pearson相关系数以及假设检验参数P值

#通:sns.joinplot(x='',y='',data=Df,kind='reg')
tipsDf=sns.load_dataset('tips')
plt.figure(figsize=[7,7])
sns.jointplot('total_bill','tip',data=tipsDf,kind='reg')

在这里插入图片描述
扩展:
seaborn.regplot
Seaborn-04-Jointplot两变量图
4.多变量图:pairplot()
seaborn.pairplot(data, hue=None, hue_order=None, palette=None, vars=None, x_vars=None, y_vars=None, kind=‘scatter’, diag_kind=‘hist’, markers=None, size=2.5, aspect=1, dropna=True, plot_kws=None, diag_kws=None, grid_kws=None)
参数:
vars : 与data使用,否则使用data的全部变量。参数类型:numeric类型的变量list。
{x, y}_vars : 与data使用,否则使用data的全部变量。参数类型:numeric类型的变量list。
dropna : 是否剔除缺失值。参数类型:boolean, optional
kind : {‘scatter’, ‘reg’}, optional Kind of plot for the non-identity relationships.
diag_kind : {‘hist’, ‘kde’}, optional。Kind of plot for the diagonal subplots.
size : 默认 6,图的尺度大小(正方形)。参数类型:numeric
hue : 使用指定变量为分类变量画图。参数类型:string (变量名)
hue_order : list of strings Order for the levels of the hue variable in the palette
palette : 调色板颜色
markers : 使用不同的形状。参数类型:list
aspect : scalar, optional。Aspect * size gives the width (in inches) of each facet.
{plot, diag, grid}_kws : 指定其他参数。参数类型:dicts

#sns.pairplot(Df,var=['con_var1','con_var2','con_var3'],hue='dis_var')
#或sns.pairplot(Df,x_vars=['con_var1','con_var2','con_var3'],y_vars=['dis_var1','dis_var2'],plot_kws={'alpha':0.2})  #plot_kws设定离散点的大小
tipsDf=sns.load_dataset('tips')
sns.pairplot(tipsDf,vars=['total_bill','tip'],hue='time')

在这里插入图片描述

irisDf=sns.load_dataset('iris')
sns.pairplot(irisDf,vars=['sepal_length','sepal_width'],hue='species')

在这里插入图片描述
三、Seaborn-05-Pairplot多变量图

5.FacetGrid()格点图与其他类型图搭配使用
基本流程是使用数据集和用于构造网格的变量初始化FacetGrid对象。然后,通过调用FacetGrid.map()或FacetGrid.map_dataframe(),可以将一个或多个绘图函数应用于每个子集。

#sns.FacetGrid()与直方图搭配使用
tipsDf=sns.load_dataset('tips')
tipsGraph=sns.FacetGrid(tipsDf,col='time',row='smoker')
tipsGraph=tipsGraph.map(plt.hist,'total_bill',color='r')
plt.show()

在这里插入图片描述

#sns.FacetGrid()与核概率密度图搭配使用
tipsGrap2=sns.FacetGrid(tipsDf,col='time',row='smoker')
tipsGrap2.map(sns.kdeplot,'total_bill',shade=True)

在这里插入图片描述

#sns.FacetGrid()与电线图搭配使用
e = sns.FacetGrid(data1, col = 'Embarked')
e.map(sns.pointplot, 'Pclass', 'Survived', 'Sex', ci=95.0, palette = 'deep')
e.add_legend()

在这里插入图片描述
seaborn.FacetGrid()的使用

6.热力图:heatplot()

#热力图
#sns.heatmap(Df)
plt.figure(figsize=[7,7])
carDf=sns.load_dataset('car_crashes')
carCorDf=carDf.corr()
sns.heatmap(carCorDf,annot=True,linewidths=.5,cbar=True)
plt.title('Heatmap on Correlation',fontsize=15,color='Black')
plt.xticks(rotation=45)

在这里插入图片描述

在这里插入图片描述

参考:
Seaborn入门系列(一)——kdeplot和distplot
Python数据可视化—seaborn简介和实例
Python数据可视化(-)Seaborn介绍

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章