pythonic生物人

Overview of seaborn

各位小伙伴们,元宵节快乐~
  • Matplotlib绘制一张美图需要很多参数调整,于是就出现了high-level版的Seaborn,几行代码即可输出美美的图形,那么Seaborn是如何做到的?
  • Seaborn主要有两种图形实现方法Figure水平「下图绿色格子中所有方法,如jointplot、JointGrid」、Axes水平「如stripplot、swarmplot等」,本文梳理Seaborn主要结构,助快速掌控Seaborn👇
Image
Seaborn Overview


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对象类型Image

  • 多子图

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

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

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

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

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对象类型

Image
  • 多子图

比较繁琐,

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()
Image
  • 从上面实例可知,在简单图形上,Figure方法和Axes方式结果几乎一样,在多子图绘制时,Figure水平优势明显;

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

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


-系统学习seaborn👇-
分享一份Python可视化教程(基于py可视化利器seaborn):530张图形+8000行代码+详细代码注释+后续免费更新+学习交流群。

教程部分内容,

👉还在用AI拼图,试试这个Python工具!

👉Python seaborn超级细节完结篇-联合美化

👉141个图表,完美展示数据分类关系!

👉53个图表,完美展示数据组合关系!

👉55个热力图heatmap代码模版~

👉51个图表,完美展示数据分布关系!

👉又一个配色新工具,颜色盘多达2500+类!

👉可视化配色工具,colormap多达3174类,数万种颜色!

Image

Image

Image

Image

Image

Image

Image

Image

Image

Image

每类图表包含详细代码+详细代码注释,多达8000行代码,例如,Image


如何加入学习?

👇加入学习(收费、备注:169)

Image

✅解锁获取6大权限:

  1. 8000+行代码(复制即可运行)
  2. 在线教程文档(清晰目录)
  3. 依赖数据(免费下载)
  4. 交流群
  5. 后续更新
  6. 定期抽最新机器学习、数据科学类书籍

点个 在看、赞就是最大的支持Image