Seaborn

Seaborn使用

Seaborn 是以 Matplotlib 为核心的高阶绘图库,提供更美观和多样化的可视化效果,下面将介绍常用的几种图的使用方法。
首先,比较下matplotlib和seaborn绘制相同图形的效果。

import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

x = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
y_bar = [3, 4, 6, 8, 9, 10, 9, 11, 7, 8]
y_line = [2, 3, 5, 7, 8, 9, 8, 10, 6, 7]

plt.bar(x, y_bar)
plt.plot(x, y_line, '-o', color='y')
sns.set(style="white") #整体布局风格设置
#默认参数
sns.set(context='notebook', style='darkgrid', palette='deep', font='sans-serif', font_scale=1, color_codes=False, rc=None)
plt.bar(x, y_bar)
plt.plot(x, y_line, '-o', color='y')

关联图

relplot 绘制关系图
scatterplot 多维度分析散点图
lineplot 多维度分析线形图

tips = sns.load_dataset("tips")
tips.head()
g = sns.relplot(x="total_bill", y="tip", hue="day", data=tips)
g = sns.relplot(x="total_bill", y="tip", hue="day", style='day',data=tips)
g = sns.relplot(x="total_bill", y="tip", hue="day",
                col="time", row="sex", data=tips)

类别图

与关联图相似,类别图的 Figure-level 接口是 catplot,其为 categorical plots 的缩写。
而 catplot 实际上是如下 Axes-level 绘图 API 的集合:
分类散点图:
stripplot() (kind=“strip”)
swarmplot() (kind=“swarm”)
分类分布图:
boxplot() (kind=“box”)
violinplot() (kind=“violin”)
boxenplot() (kind=“boxen”)
分类估计图:
pointplot() (kind=“point”)
barplot() (kind=“bar”)
countplot() (kind=“count”)

exercise = sns.load_dataset("exercise")
exercise.head()
g = sns.catplot(x="time", y="pulse", hue="kind", kind="point",data=exercise)

catplot 绘图效果:
该方法默认是绘制 kind=“strip” 散点图
box 箱线图
violin 小提琴图
boxen 增强箱线图
point 点线图
bar 条形图
count 计数条形图

分布图

分布图主要是用于可视化变量的分布情况,Seaborn 提供的分布图绘制方法一般有这些: jointplot,pairplot,distplot,kdeplot

#查看单变量分布
g = sns.distplot(tips["total_bill"])
#jointplot 主要是用于绘制二元变量分布图
g = sns.jointplot(x="total_bill", y="tip", data=tips)
g = sns.jointplot(x="total_bill", y="tip", kind='kde', data=tips)#核密度估计
g = sns.jointplot(x="total_bill", y="tip", kind='hex', data=tips)#六边形图
g = sns.jointplot(x="total_bill", y="tip", kind='reg', data=tips)#回归拟合图
#将数据集中的特征变量两两对比绘图,对角线上是单变量分布,其他是二元变量分布
sns.pairplot(tips)

回归图

回归图的绘制函数主要有:lmplot 和 regplot

#regplot 绘制回归图时,只需要指定自变量和因变量即可,regplot 会自动完成线性回归拟合
sns.regplot(x="total_bill", y="tip", data=tips)
#lmplot 支持引入第三维度进行对比
sns.lmplot(x="total_bill", y="tip", hue="time", data=tips)

矩阵图

矩阵图包括heatmap、clustermap

import numpy as np

uniform_data = np.random.rand(10, 12)
ax = sns.heatmap(uniform_data,cmap="YlGnBu")
#data:2D array-like
sex = tips.pop("sex")
smoker = tips.pop("smoker")
day = tips.pop("day")
time = tips.pop("time")
size = tips.pop("size")
g = sns.clustermap(tips)
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值