В этом случае не работает макет Pandas. - PullRequest
1 голос
/ 18 апреля 2019

Я строил график рассеяния набора данных mpg из библиотеки Seaborn. Мне было интересно, если можно построить нечетное количество участков в Python?

import pandas as pd
import seaborn as sns
df = sns.load_dataset('mpg')
df.groupby('origin').plot.scatter(x='cylinders',y='mpg',subplots=True,layout=(2,2))

Это дает 4,1 участка, а не 2,2 участка:
enter image description here

Есть ли способ получить 3 субплота для США, Европы и Японии с названиями лейблов? как показано ниже, более простым способом?

Это долгий путь:

import pandas as pd
import seaborn as sns
df = sns.load_dataset('mpg')
g = df.groupby('origin')

fig, axes = plt.subplots(2,2,figsize=(8, 4))
for i, (g_name, g_data) in enumerate(g): # axes.flat also works
    ax = g_data.plot.scatter(x='cylinders', y='mpg', ax=axes.flatten()[i], title=g_name)

plt.tight_layout()
fig.delaxes(axes[1][1])

1 Ответ

2 голосов
/ 18 апреля 2019

Попробуйте delaxes:

fig.delaxes(axes[1][1])
...