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

 

🤵‍♂️ 个人主页:@艾派森的个人主页

✍🏻作者简介:Python学习者
🐋 希望大家多多支持,我们一起进步!😄
如果文章对你有帮助的话,
欢迎评论 💬点赞👍🏻 收藏 📂加关注+


目录

简介

distplot 直方图

barplot条形图

boxplot 盒图

小提琴图

 stripplot(分布散点图)

swarmplot(分簇散点图)

scatterplot散点图

kdeplot双轴密度图

pointplot点图

heatmap热力图

pairplot散布图矩阵

 lineplot线型图

 回归分析图


简介

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')

  • 14
    点赞
  • 104
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

艾派森

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值