【发布时间】:2020-02-23 02:30:04
【问题描述】:
我正在尝试使用 seaborn 生成多个小提琴图。数据框 我使用的在一列中包含多个分类值(用于 x 轴),每个分类值都有一个值数组(用于为每个分类值创建小提琴图)。一个小的工作示例是这样的:
foo = pd.DataFrame(columns =['Names','Values'])
for i in range(10):
foo.loc[i] = ['no'+str(i),np.random.normal(i,2,10)]
但是在尝试的时候
sns.violinplot(x='Names', y='Values', data=foo)
我收到以下错误
ValueError:
x和y变量似乎都不是数字。
现在我可能会很笨拙,只是将数组分隔成几行:
foo = pd.DataFrame(columns =['Names','Values'])
for i in range(3):
bar = np.random.normal(i,2,10)
for j,b in enumerate(bar):
foo.loc[i*10+j] = ['no'+str(i),b]
产生我想要的情节:
但我猜有一个更简单的解决方案,无需重组我的数据框。
【问题讨论】: