使用seaborn引发ValueError进行分类打印:不支持对象数组

2024-05-21 06:16:37 发布

您现在位置:Python中文网/ 问答频道 /正文

以下是我正在使用的熊猫数据帧的一部分:

all_samples = pd.DataFrame({'Group': {0: 'One', 3: 'One', 4: 'One', 5: 'One', 7: 'One'},
 'Sample': {0: 1, 3: 1, 4: 2, 5: 2, 7: 2},
 'VAF': {0: 0.0009577524741938917,
  3: 0.0006907269901571404,
  4: 0.001246660730186999,
  5: 0.00128,
  7: 0.0012338062924120913}})

如果我尝试将数据绘制为散点图,一切正常:

sns.catplot(x="Group", y="VAF", hue="Sample", dodge=True,
            palette="pastel", data=all_samples.head(20));

但是当我试着把数据绘制成小提琴图,或者像这样的箱线图:

sns.catplot(x="Group", y="VAF", hue="Sample", kind='violin',
            palette="pastel", data=all_samples.head(20));

我得到一个ValueError: object arrays are not supported错误。我的数据帧结构是不是很差?你知道吗

更新:

因为它为其他人工作,我尝试了我张贴的例子,它为我工作。然后,当我使用完整的数据帧时,我将它转换为字典,然后转换为数据帧,现在它工作得很好。temp = pd.DataFrame(all_samples.to_dict())然后像这样绘制:sns.violinplot(x='Group', y='VAF', hue='Sample', palette='pastel', data=temp)。不幸的是,我现在不知道如何发布我的原始数据来了解出了什么问题。这对任何人都有意义吗?你知道吗


Tags: 数据sampledataframedatagroup绘制allhue
1条回答
网友
1楼 · 发布于 2024-05-21 06:16:37

这在seaborn版本0.9上适用,但是在我的例子中,图形被裁剪掉了。你知道吗

如果要绘制小提琴图,可以直接调用violinplot函数:

sns.violinplot(x='Group', y='VAF', hue='Sample', palette='pastel', data=all_samples);
plt.show()

enter image description here

相关问题 更多 >