数据频率的 Seaborn 条形图

数据挖掘 Python 可视化 海运
2022-02-24 20:56:39

我正在尝试绘制一个条形图来表示我的测试和训练数据中两个变量(死和活)的频率。我希望它看起来像文档中描述的第二个示例(减去错误栏)。

显示所需输出的图像

目前我有

yfreq = pd.DataFrame(data = [Counter(Ytrain),Counter(Ytest)],
                     index = ['Train','Test'])
yfreq.columns = ['Dead', 'Alive']
print(yfreq)
>>>        Dead  Alive
    Train   384    239
    Test    165    103

然后对于图表

sns.barplot(data = yfreq)

它正确地输出了一个图形,但没有将数据拆分为测试和训练数据。

显示当前输出图表的图像

我知道这与huekwarg 有关,但我不知道该怎么做。

提前致谢

1个回答

这应该可以解决问题。您必须融化您的数据框才能在您的 seaborn barplot 中使用 x、y 和色相。

yfreq['type'] = yfreq.index
yfreq = yfreq.melt(id_vars = 'type')
sns.barplot(x = 'variable', y = 'value', hue = 'type', data = yfreq)