我有如下数据集:

“岛”的特征有三种可能的价值:托根森、比斯科岛和梦想。我将打印为“海运计数图”如下:
fig = sns.countplot(data=dataset, x='Island', hue='Species');

我得到了上面的信息。
我想要三个分开的地块,尽管每个岛。我尝试了以下几种方法,但这不起作用:
fig = sns.countplot(data=dataset, x='Island['Torgersen', hue='Species');
fig = sns.countplot(data=dataset, x='Island['Biscoe Island', hue='Species');
fig = sns.countplot(data=dataset, x='Island['Dream', hue='Species');但这似乎行不通。你知道我怎样才能得到三个地块(每个岛一块),而不是一个地块(三个岛都有)?
发布于 2022-12-04 20:09:52
您可以创建一个FacetGrid,然后将sns.countplot映射到每个子图。
import matplotlib.pyplot as plt
import seaborn as sns
dataset = sns.load_dataset('penguins')
g = sns.FacetGrid(data=dataset, col='island')
species = dataset['species'].unique()
g.map(sns.countplot, 'species', order=species, palette='turbo')
for ax in g.axes.flat:
ax.bar_label(ax.containers[0])
plt.show()

PS:您也可以通过对sns.displot的一次调用来绘制此图(这将对所有的条形图使用相同的颜色)。
g = sns.displot(data=dataset, kind='hist', stat='count', col='island', x='species', shrink=0.8)https://stackoverflow.com/questions/74677119
复制相似问题