之前看其他大佬的项目,只在意他们通过可视化的数据集,对数据特征挖掘的思路,但没有在意他们做可视化的工具。轮到自己做的时候就发现,wtf!matplotlib可以更难用一点嘛?别人酷炫狂拽,坐标轴上还有直方图的可视化究竟是怎么弄的?
今天碰到了Seaborn的库,一行代码就出图,爱了!
Seaborn介绍
Seaborn是Python的数据统计图形库。它基于matplotlib构建,并与pandas数据结构紧密集成。
Seaborn功能简介
- 面向数据集的API,便于观察多个变量之间的关系
- 支持分类变量可视化或汇总统计信息
- 可视化单变量或双变量分布,以及在数据子集之间进行比较
- 不同因变量的线性回归和展示
- 方便查看复杂数据集的整体结构
- 强大的函数,可让您轻松构建复杂的可视化
- 基于matplotlib的样式
- 包含调色板工具
flatui = ["#9b59b6", "#3498db", "#95a5a6", "#e74c3c", "#34495e", "#2ecc71"]
sns.palplot(sns.color_palette(flatui))
seaborn功能初探
代码语言:javascript复制#导入库
import numpy as np
import pandas as pd
import seaborn as sns
单变量可视化
查看seaborn中的单变量分布的最便捷方法是distplot()函数。默认情况下,将绘制直方图并拟合核密度估计(KDE, kernel density estimate)。
代码语言:javascript复制# 生成数据
x = np.random.normal(size=100)
# 数据可视化
sns.distplot(x)
双变量分布可视化
在seaborn中可视化双变量的方法是jointplot()函数,该函数创建一个多面板图形,该图形同时显示两个变量之间的双变量(或联合)关系以及每个变量的单变量分布。
代码语言:javascript复制# 生成二维数据
mean, cov = [0, 1], [(1, .5), (.5, 1)]
data = np.random.multivariate_normal(mean, cov, 200)
df = pd.DataFrame(data, columns=["x", "y"])
# 数据可视化
sns.jointplot(x="x", y="y", data=df)
- 二维直方图
sns.jointplot(x=x, y=y, kind="hex")
- 核密度估计
sns.jointplot(x="x", y="y", data=df, kind="kde")
多变量数据可视化
要在多变量数据集中绘制成对的双变量分布,可以使用pairplot()函数。这将创建轴矩阵,并显示DataFrame中每列的关系。默认情况下,它还会在对角轴上绘制每个变量的单变量分布。
代码语言:javascript复制# 读入内置数据
iris = sns.load_dataset("iris")
# 数据可视化
sns.pairplot(iris)
更多功能及运行示例代码