Как мне построить несколько FacetGrids в одном окне? - PullRequest
0 голосов
/ 03 августа 2020

В приведенном ниже коде я могу поместить два простых графика морских наблюдений в одно окно, передав аргумент ax=ax[i] каждому, не работает для FacetGrid(). Аналогичный вопрос был задан здесь , интересно, есть ли у кого-нибудь представление о том, как это сделать. Спасибо!

import pandas as pd
import seaborn as sns
from matplotlib import pyplot as plt

df = sns.load_dataset('tips')

########################
# Works :)
########################
fig,ax = plt.subplots(nrows=2)
sns.regplot(x='total_bill', y='tip', data=df, ax=ax[0])         # plot #1
sns.boxplot(x='day', y='total_bill', data=df, ax=ax[1])         # plot #2
plt.show()

########################
# Does not work :(
########################
fig,ax = plt.subplots(nrows=2)
g = sns.FacetGrid(df, col="time", ax=ax[0])                             # FacetGrid #1
g.map(plt.hist, "tip")

g = sns.FacetGrid(df, col="sex", hue="smoker", col_wrap=2, ax=ax[1])    # FacetGird #2
g.map(plt.scatter, "total_bill", "tip", alpha=.7)
g.axes[-1].legend() 
plt.show()

1 Ответ

0 голосов
/ 03 августа 2020

Это потому, что FacetGrid сам по себе создает подзаголовки и создает одну фигуру. Подзаголовки нельзя использовать с FacetGrid. Единственное решение этой проблемы - объединить ваши FacetGrids вместе, чтобы создать один график - однако это непростая задача, если ваши оси не совпадают. сетки в один участок

...