Python数据可视化—seaborn各类图形的绘制

基础图形

针对各种基本图形,seaborn中提供了与matplotlib类似的接口,其他高级作图函数都以这些底层作图函数为基础,进行封装,通常作为kind参数。各种基本图形既可以直接传入数组形式的变量数据,也可以传入DataFrame列名并传入data参数。
列举如下:

import seaborn as sns
# 折线图
sns.lineplot()
# 条形图
sns.barplot()
# 计数条形图
sns.countplot()
# 散点图
sns.scatterplot()
# 分类散点图
sns.stripplot()
# 分簇散点图
sns.swarmplot() # 与stipplot()的区别就是点不重叠
# 箱型图
sns.boxplot()
# 增强箱型图
sns.boxenplot() # 适合大数据集,显示更多分位数
# 小提琴图
sns.violinplot()
# 点图
sns.pointplot() # 纵轴是均值,置信区间用标准差表示
# 核密度估计图
sns.kdeplot(x,bw=2.0, shade=True) #bw为带宽
# 地毯图
sns.rugplot(x) # 直接将数据标记在坐标轴上
# 回归线图
sns.regplot() # 散点图附加回归线
# 热图
sns.heatmap(annot=True) # annot表示显示数值
# 另外补充几种常用图
# 饼图
plt.pie(x, label, explode,shadow=True,pctdistance=0.6,labeldistance=1.1,startangle=90) # explode表示部分扇形突出,x,label,explode均为数组形式数据
# 极坐标图
ax = plt.subplot(111,projection='polar') # projection指投影到极坐标
ax.plot(x,y) # x为角度(弧度制),y为径长
# 平行坐标图
from pandas.plotting import parallel_coordinates
parallel_coordinates(data, 'key')

高级函数

针对数据可视化的不同目的,seaborn提供了relplot(),catplot(),displot(),lmplot()四大主要高级函数。
seaborn与pandas的DataFrame的结合非常好,因此传参是可以直接传入列名
返回的是FacetGrid(平面网格图)对象。
这些高级函数的主要参数如下:
x,y:输入变量
data:输入数据df
hue:分组变量
style:如传入,则hue分组后每组数据作图风格可不一致
col,row:决定平面网格图布局的变量
kind:底层作图类型名称,如"line",“bar”,"box"等
注:由于返回的平面网格图子图间距可能不合理,可调用plt.tight_layout()自动调整。

可视化变量关系(relationship)

relplot()方便观察变量间的关系。

sns.relplot() # 默认是散点图

分类数据的分布图(categorical)

catplot()可以很好观察分类数据的分布情况。

sns.catplot()

数据集分布图(distribution)

特征工程前,需要对数据集的有一个整体的了解,seabon提供的高级函数displot()可以作各种分布图。

单变量分布

displot是hist(直方图)、rugplot(地毯图)、kdeplot(核密度估计图)的高级封装。

from scipy import stats
sns.displot(x, kde=False,rug=False, fit=stats.gamma) # 直方图,若传入fit参数,则表示拟合相应的分布

双变量分布

sns.jointplot(kind='scatter')
# scatter表示散点图,hex表示HexBin图,kde表示核密度估计图,reg表示添加回归线的散点图,resid表示残差图
# 定制图
g = sns.JointGrid()
g.plot_joint(plt.scatter)
g.plot_marginal(sns.displot)
g.annotate(stats.pearsonr)

成对变量分布

sns.pairplot(data)
# 定制图
g = sns.PairGrid(data)
g.map_diag(sns.kdeplot)
g.map_offdiag(sns.kdeplot)

回归线图(linear model)

regplot()以及lmplot()都可以作回归线图,二者的区别是lmplot的参数data是必传的,而regplot不是。因此可以将regplot()视为底层函数。

sns.lmplot('total_bill','tip',data=tips)
sns.residplot() # 残差图
"""
lmplot重要参数解释:
ci:置信度
order: 拟合阶数
x_jitter: 施加噪声
robust: 鲁棒性
logistic: 逻辑斯谛回归
hue:分组回归
scatter_kws={"s":80}: 散点图参数(例如点的大小)
"""
  • 1
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值