21

Seaborn:一行代码生成酷炫狂拽的数据集可视化

 4 years ago
source link: http://mp.weixin.qq.com/s?__biz=MzI1MTE2ODg4MA%3D%3D&%3Bmid=2650072446&%3Bidx=2&%3Bsn=98a04241e7c05b4fe69bc5562a818e63
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

之前看其他大佬的项目,只在意他们通过可视化的数据集,对数据特征挖掘的思路,但没有在意他们做可视化的工具。轮到自己做的时候就发现,wtf!matplotlib可以更难用一点嘛?别人酷炫狂拽,坐标轴上还有直方图的可视化究竟是怎么弄的?

今天碰到了Seaborn的库,一行代码就出图,爱了!

Seaborn介绍

Seaborn是Python的数据统计图形库。 它基于matplotlib构建,并与pandas数据结构紧密集成。

Seaborn功能简介

  • 面向数据集的API,便于观察多个变量之间的关系

NjQnmer.jpg!web

  • 支持分类变量可视化或汇总统计信息

ve26Rji.png!web

f6RfYz2.png!web

  • 可视化单变量或双变量分布,以及在数据子集之间进行比较

vYRVfaa.jpg!web

YB3aQzm.png!web

  • 不同因变量的线性回归和展示

36JFrqq.png!web

jQveqmA.png!web

  • 方便查看复杂数据集的整体结构

ziiiUv3.jpg!web

  • 强大的函数,可让您轻松构建复杂的可视化

QFzMreB.png!web

RjaYfyR.jpg!web

  • 基于matplotlib的样式

maAFziN.jpg!web

  • 包含调色板工具

flatui = ["#9b59b6", "#3498db", "#95a5a6", "#e74c3c", "#34495e", "#2ecc71"]
sns.palplot(sns.color_palette(flatui))

yEnaiqV.png!web

seaborn功能初探

#导入库
import numpy as np
import pandas as pd
import seaborn as sns

单变量可视化

查看seaborn中的单变量分布的最便捷方法是distplot()函数。默认情况下,将绘制直方图并拟合核密度估计(KDE, kernel density estimate)。

# 生成数据
x = np.random.normal(size=100)
# 数据可视化
sns.distplot(x)

yaumYjn.png!web

双变量分布可视化

在seaborn中可视化双变量的方法是jointplot()函数,该函数创建一个多面板图形,该图形同时显示两个变量之间的双变量(或联合)关系以及每个变量的单变量分布。

# 生成二维数据
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)

BJBJZjj.png!web

  • 二维直方图

sns.jointplot(x=x, y=y, kind="hex")

NjIfAfy.png!web

  • 核密度估计

sns.jointplot(x="x", y="y", data=df, kind="kde")

uY3aEn2.png!web

多变量数据可视化

要在多变量数据集中绘制成对的双变量分布,可以使用pairplot()函数。这将创建轴矩阵,并显示DataFrame中每列的关系。默认情况下,它还会在对角轴上绘制每个变量的单变量分布。

# 读入内置数据
iris = sns.load_dataset("iris")
# 数据可视化
sns.pairplot(iris)

jyEzUrq.png!web


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK