【Python】Matplotlib太臃肿,试试Seaborn
Matplotlib绘制一张美图需要很多参数调整,于是就出现了high-level版的Seaborn,几行代码即可输出美美的图形,那么Seaborn是如何做到的?
Seaborn主要有两种图形实现方法Figure水平「下图绿色格子中所有方法,如jointplot、JointGrid」、Axes水平「如stripplot、swarmplot等」,本文梳理Seaborn主要结构,助快速掌控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))
\ # 注意此处g对象类型
多子图
Figure水平多子图一行代码搞定,
sns.displot(data=penguins, x="flipper_length_mm", hue="species", col="species")

矩阵图 (pairplot)
sns.pairplot(data=penguins, hue="species")

矩阵图 (PairGrid)
PairGrid可使矩阵图更加个性化,
g = sns.PairGrid(penguins, diag_sharey=False)
g.map_upper(sns.scatterplot) #右上角做散点图
g.map_lower(sns.kdeplot) #左下角做等高线图
g.map_diag(sns.histplot) #中间做直方图

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))
\ # 注意此处g对象类型

多子图
比较繁琐,
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()

从上面实例可知,在简单图形上,Figure方法和Axes方式结果几乎一样,在多子图绘制时,Figure水平优势明显;
相比于jointplot/pairplot,JointGrid/PairGrid可以更个性化。
本文简要介绍了Seaborn的主要方法,详细可参考历史文章及官网。
致谢:http://seaborn.pydata.org/index.html
-END-
往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑黄海广老师《机器学习课程》视频课
本站qq群851320808,加入微信群请扫码:
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
