seaborn画直方图、条形图、盒图、散点图等常用图形

简介: seaborn画直方图、条形图、盒图、散点图等常用图形

简介

Seaborn 是以 matplotlib为底层,更容易定制化作图的Python库。


Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从 而使得作图更加容易。 在大多数情况下使用 Seaborn 就能做出很具有吸引力的图,而使用 matplotlib就能制作具有更多特色的图,换句话说, matplotlib 更加灵 活,可定制化,而 seaborn 像是更高级的封装,使用方便快捷。


distplot 直方图

#导入模块
import numpy as np
import seaborn as sns
#生成数据
x = np.random.normal(size=100)
#绘制直方图
#设置多少个分组 bins=
sns.displot(x,bins=20)
#kde 是否显示数据分布曲线 默认值是False
sns.displot(x,bins=20,kde=True)
#设置风格样式
sns.set(style='white')
sns.displot(x,bins=20,kde=True)

barplot条形图

#导入模块
import seaborn as sns
#加载数据
titanic = sns.load_dataset('titanic')
#绘制条形图  barplot
sns.barplot(x='sex',y='survived',data=titanic)
#按船舱分组
sns.barplot(x='sex',y='survived',data=titanic,hue='class')

boxplot 盒图

#导入模块
import seaborn as sns
#加载数据
tips = sns.load_dataset('tips')
#绘制盒图 boxplot
sns.boxplot(x='day',y='total_bill',data=tips)
#按时间time分组
sns.boxplot(x='day',y='total_bill',data=tips,hue='time')

小提琴图

小提琴图是箱图和密度图的一种结合图形。左右越宽代表当前数据 量越密集。

import seaborn as sns
#加载数据
tips = sns.load_dataset('tips')
#绘制小提琴图
sns.violinplot(x='day',y='total_bill',data=tips)
#按性别分组
sns.violinplot(x='day',y='total_bill',data=tips,hue='sex')
#男生女生合到一块
sns.violinplot(x='day',y='total_bill',data=tips,hue='sex',split=True)
#去掉中间线
sns.violinplot(x='day',y='total_bill',data=tips,hue='sex',split=True,inner=None)

stripplot(分布散点图)

#加载模块
import seaborn as sns
#导入数据
tips = sns.load_dataset('tips')
#绘制分布散点图  stripplot()
sns.stripplot(x='day',y='total_bill',data=tips)
#jitter 震动 默认是True
sns.stripplot(x='day',y='total_bill',data=tips,jitter=False)

swarmplot(分簇散点图)

#加载模块
import seaborn as sns
#导入数据
tips = sns.load_dataset('tips')
sns.swarmplot(x='day',y='total_bill',data=tips)
#按性别分组
sns.swarmplot(x='day',y='total_bill',data=tips,hue='sex')
#按时间分组
sns.swarmplot(x='day',y='total_bill',data=tips,hue='time')

scatterplot散点图

#加载模块
import seaborn as sns
#导入数据
tips = sns.load_dataset('tips')
sns.scatterplot(data=tips,x='total_bill',y='tip')
#size参数指定点的大小
sns.scatterplot(data=tips,x='total_bill',y='tip',size='size')
#hue 按是否吸烟进行分组
sns.scatterplot(data=tips,x='total_bill',y='tip',size='size',hue='smoker')
#保存图片
from matplotlib import pyplot as plt
sns.scatterplot(data=tips,x='total_bill',y='tip',size='size',hue='smoker',style='time')
plt.savefig('scatterplot.jpg')

kdeplot双轴密度图

#导入模块
import numpy as np
import pandas as pd
import seaborn as sns
#生成数据
# 生成 多元高斯正太分布 的数据
# 多元高斯正太分布是一堆正太分布向更多维度的推广,这种分布由其均值和协方差矩阵来确定
data = np.random.multivariate_normal([0,1], [(1,0.5),(0.5,1)], 1000) # 均值, [(1,0.5),(0.5,1)]协方差对称阵
df = pd.DataFrame(data,columns=['x','y'])
#绘制密度图
sns.kdeplot(x='x',y='y',data=df)
#color属性  修改颜色
sns.kdeplot(x='x',y='y',data=df,shade=True,color='red')

pointplot点图

#加载模块
import seaborn as sns
#加载数据
titanic = sns.load_dataset('titanic')
#绘制点图
sns.pointplot(data=titanic,x='sex',y='survived')
#hue 进行分组
sns.pointplot(data=titanic,x='sex',y='survived',hue='class')

heatmap热力图

热力图(heatmap)是以矩阵的形式表示,数据值在图形中以颜色 的深浅来表示数量的多少,并可以快速到到大值的与最小值所在位 置。在机器学习的分类中经常用来作混淆矩阵的比较。

#导入模块
import numpy as np
import seaborn as sns
#加载航班数据
flights = sns.load_dataset('flights')
#pivot 是DataFrame中的一个函数
data = flights.pivot('month','year','passengers')
#绘制热力图
sns.heatmap(data=data)
#参数 annot :True
sns.heatmap(data=data,annot=True)
#以整数的形式显示
sns.heatmap(data=data,annot=True,fmt='d')
#去掉右侧图例
sns.heatmap(data=data,annot=True,fmt='d',linewidths=0.5,cbar=False)
#修改色系
sns.heatmap(data=data,annot=True,fmt='d',linewidths=0.5,cbar=False,cmap='YlGnBu')

pairplot散布图矩阵

#加载模块
import seaborn as sns
import matplotlib.pyplot as plt
#加载鸢尾花数据
iris = sns.load_dataset('iris')
#pairplot绘制
sns.pairplot(data=iris)
#添加hue
sns.pairplot(data=iris,hue='species')

lineplot线型图

#导入模块
import seaborn as sns
#加载数据
iris = sns.load_dataset('iris')
sns.lineplot(x='sepal_length',y='sepal_width',data=iris)
#进行分组
sns.lineplot(x='sepal_length',y='sepal_width',data=iris,hue='species')
#按性别分组
sns.lineplot(x='total_bill',y='tip',data=tips,hue='sex')
# style = 'time'
sns.lineplot(x='total_bill',y='tip',data=tips,hue='sex',size='smoker',style='time')

回归分析图

线性回归图通过大量数据找到模型拟合线性回归线。

#导入模块
import seaborn as sns
iris = sns.load_dataset('iris')
#lmplot()
sns.lmplot(data=iris,x='petal_length',y='petal_width')
#regplot()
sns.regplot(data=iris,x='petal_length',y='petal_width')

目录
相关文章
|
6月前
|
数据可视化 Python
【100天精通Python】Day62:Python可视化_Matplotlib绘图基础,绘制折线图、散点图、柱状图、直方图和饼图,以及自定义图标外观和功能,示例+代码
【100天精通Python】Day62:Python可视化_Matplotlib绘图基础,绘制折线图、散点图、柱状图、直方图和饼图,以及自定义图标外观和功能,示例+代码
117 0
|
18天前
|
算法 Serverless 计算机视觉
opencv 直方图处理(python)
opencv 直方图处理(python)
|
1月前
|
Python
联合分布直方图(python
联合分布直方图(python
20 1
|
2月前
|
数据可视化 Python
如何使用 Python 绘制直方图
使用 Python 绘制直方图是一种常见的数据可视化技术,它可以帮助我们快速了解数据的分布情况。在 Python 中,我们可以使用`matplotlib`库来绘制直方图。
|
4月前
|
存储 数据可视化 定位技术
Python用若干列的数据多条件筛选、去除Excel数据并批量绘制直方图
Python用若干列的数据多条件筛选、去除Excel数据并批量绘制直方图
|
4月前
|
编解码 数据可视化 定位技术
Python中gdal读取多波段HDF栅格遥感影像数据图层文件并依据像素绘制直方图
Python中gdal读取多波段HDF栅格遥感影像数据图层文件并依据像素绘制直方图
|
4月前
|
Python
Python中gdal实现多幅栅格遥感影像图层数据批量绘制直方图
Python中gdal实现多幅栅格遥感影像图层数据批量绘制直方图
|
9月前
|
编解码 数据可视化 数据格式
Python GDAL读取多波段HDF图像绘制直方图
本文介绍基于Python语言gdal模块,实现多波段HDF栅格图像文件的读取、处理与像元值可视化(直方图绘制)等操作~
Python GDAL读取多波段HDF图像绘制直方图
|
11月前
|
Python
Python基于大量栅格遥感影像绘制直方图
本文介绍基于Python中gdal模块,实现对大量栅格图像批量绘制直方图的方法~
174 1
|
算法 数据可视化 Python
Python漫游数学王国 | 直方图和箱线图
对于杂乱无章的数据,数据的整理与描述显得尤为重要。本文通过例子介绍频数分布表、直方图,以及箱线图的绘制。
175 0