Python 使用seaborn ValueError进行分类打印:不支持对象数组
以下是我正在使用的熊猫数据帧的一部分:Python 使用seaborn ValueError进行分类打印:不支持对象数组,python,pandas,seaborn,Python,Pandas,Seaborn,以下是我正在使用的熊猫数据帧的一部分: 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.0
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:不支持对象数组错误。我的数据帧结构是否糟糕
更新:
因为它对其他人有效,所以我尝试了我发布的示例,它对我有效。然后当我使用完整的数据帧时;我把它转换成字典,然后转换成数据帧,现在它工作得很好temp=pd.DataFrame(所有样本到dict())
然后这样打印:sns.violinplot(x='Group',y='VAF',hue='Sample',palete='pastel',data=temp)
。不幸的是,我现在不知道如何发布我的原始数据来理解哪里出了问题。这对任何人都有意义吗?这在seaborn
0.9版上对我有效,但是,在我的例子中,图形被裁剪掉了
如果要绘制小提琴图,可以直接调用violinplot
函数:
sns.violinplot(x='Group', y='VAF', hue='Sample', palette='pastel', data=all_samples);
plt.show()
我在使用sns时没有发现错误。\uuuu version\uuuu==“0.9.0”
关于数据的调试,您可以尝试数据的不同子集,看看这是否会改变什么。如果只是一些数据行导致了错误,您可以隔离一个足够小的子集,以便在问题中提供。