首页 > 解决方案 > 如何连接两个“Facetgrid”图?

问题描述

使用 seaborn,我创建了两个 Facetgrid ( seaborn.axisgrid.FacetGrid) 图,如下所示:

#load dataset
import pandas as pd
iris=pd.read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv')

#plotting
import matplotlib.pyplot as plt
import seaborn as sns

g1 = sns.FacetGrid(pd.melt(iris.loc[:,['sepal_length','sepal_width','species']], id_vars='species'), col='variable')
g1.map(sns.boxplot, 'species','value',order=['setosa','versicolor','virginia'])
g2 = sns.FacetGrid(iris, col="species")
g2.map(plt.scatter, "sepal_length", "sepal_width")

生成了两个单独的图:

在此处输入图像描述

在此处输入图像描述

我想把它们放在一个图中(并保存为一个 pdf 文件)。但是,我找不到任何连接图的方法(通过python)。我总是可以使用 Illustrator/Inkscape 或 bash 命令来连接单独的绘图。但是我想避免这种情况并单独在 python 中执行所有步骤。

我试过fig.axes.appendfig.axes.append(g1.axes.flatten()[0])),但子图最终相互重叠。

在此处输入图像描述

问题:是否可以连接两个 seaborn-Facegrid 图?

标签: matplotlibseaborn

解决方案


就我个人而言,当我需要同时显示多个图形时,我将有一个 html 输出,其中包含对我要显示的每个图的嵌入式引用。这样您就可以在浏览器上的一个地方查看所有分析。


推荐阅读