Matplotlib太臃肿,试试Seaborn

大家好,我是辰哥~

在文章分享之前,先给大家安排一波福利

写代码【逼格】要到位,炫酷显示器送一台

2021-10-05

52f5be7cf9f559650e5601b6c8820fde.png

假期是个弯道超车的机会,这些圈子加入了吗?

2021-10-05

a07cb535b71bf6b476c222ba8d2d218c.png


国庆假期已快欠费了,最后的1-2天里给大家安排的显示器和学习平台必须到位。

今天的干货Seaborn可视化库

  • Matplotlib绘制一张美图需要很多参数调整,于是就出现了high-level版的Seaborn,几行代码即可输出美美的图形,那么Seaborn是如何做到的?

  • Seaborn主要有两种图形实现方法Figure水平「下图绿色格子中所有方法,如jointplot、JointGrid」、Axes水平「如stripplot、swarmplot等」,本文梳理Seaborn主要结构,助快速掌控Seaborn👇

b635e3e118db74f82ef6856987a9b03a.png
Seaborn Overview
02ab80dafbf954abce8d2f1a83ebb3a8.png
❤️庖丁解牛Seaborn❤️

Figure水平方法

此时,通过seaborn.axisgrid.FacetGrid对象作图,以displot为例,

  • 单个图

import seaborn as sns
import pandas as pd
penguins = sns.load_dataset("penguins")#导入数据

g = sns.displot(data=penguins,
                x="flipper_length_mm",
                hue="species",
                multiple="stack",
                kind="hist")#一行代码出图
sns.set(style='whitegrid', font_scale=1.2)
print(type(g))

\<class 'seaborn.axisgrid.FacetGrid'> # 注意此处g对象类型88d79567215c14c1d96c55639b4487cc.png

  • 多子图

Figure水平多子图一行代码搞定,

sns.displot(data=penguins, x="flipper_length_mm", hue="species", col="species")
b936db0ac29a840e87a315d0b4f4010f.png
  • 矩阵图 (pairplot)

sns.pairplot(data=penguins, hue="species")
893e158c947260f372ec46bb32536f57.png
  • 矩阵图 (PairGrid)

PairGrid可使矩阵图更加个性化,

g = sns.PairGrid(penguins, diag_sharey=False)
g.map_upper(sns.scatterplot)  #右上角做散点图
g.map_lower(sns.kdeplot)  #左下角做等高线图
g.map_diag(sns.histplot)  #中间做直方图
6d6d1c6b072a0c11856df820487f616f.png

Axes水平方法

此时,直接在matplotlib.axes._subplots.AxesSubplot对象上作图,以hisplot为例,

  • 单个图

import seaborn as sns
import pandas as pd
penguins = sns.load_dataset("penguins")

g = sns.histplot(data=penguins,
                 x="flipper_length_mm",
                 hue="species",
                 multiple="stack")
sns.set(style='whitegrid', font_scale=1.2)
print(type(g))

\<class matplotlib.axes._subplots.AxesSubplot> # 注意此处g对象类型

6237df0688158be56a29226a85785cb3.png
  • 多子图

比较繁琐,

import matplotlib.pyplot as plt
f, axs = plt.subplots(1,
                      2,
                      figsize=(8, 4),
                      gridspec_kw=dict(width_ratios=[4, 3]))
sns.scatterplot(data=penguins,
                x="flipper_length_mm",
                y="bill_length_mm",
                hue="species",
                ax=axs[0])
sns.histplot(data=penguins,
             x="species",
             hue="species",
             shrink=.8,
             alpha=.8,
             legend=False,
             ax=axs[1])
f.tight_layout()
07f3e53b254e1cb6d6c6ad3d9b066ec8.png
  • 从上面实例可知,在简单图形上,Figure方法和Axes方式结果几乎一样,在多子图绘制时,Figure水平优势明显;

  • 相比于jointplot/pairplot,JointGrid/PairGrid可以更个性化。

  • 本文简要介绍了Seaborn的主要方法,详细可参考历史文章及官网。

致谢:http://seaborn.pydata.org/index.html


8ea9a2cce69b2977c6fd8e37a185b91e.png

最后

08b366dda4c1e92809b241c6229e9061.png

写代码【逼格】要到位,炫酷显示器送一台


a29ffa64fbc0340cc42c7dcd8a9069c0.png

假期是个弯道超车的机会,这些圈子加入了吗?


5d19df94d49eb2e279048eb639780dea.png

学会这些好用的pandas函数,让你的数据处理更快人一步

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值