由于一些原因,我不想进入,我需要在不使用熊猫数据帧的情况下制作小提琴图。例如,我有以下数据和类别
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
data = np.random.randn(5, 3)
category = np.array(["yes", "no", "no", "no", "yes", "yes","yes", "no", "yes", "yes", "yes", "no", "no", "no", "no"])
ax = sns.violinplot(data = data)
plt.show()
结果为未分组的小提琴图
然而,我想使用分类数据来制作一个分组的小提琴图
ax = sns.violinplot(data = data, x = category)
plt.show()
给出一个错误AttributeError: 'numpy.ndarray' object has no attribute 'get'
。没有熊猫有办法解决这个问题吗
x
、y
和hue
使用多个numpy数组,请不要使用data
参数李>y
中,可以使用np.nonzero
创建索引数组李>np.arrays
都是一维的.flatten()
。例如,Iflatten
您的随机浮点数组从5,3
到15,1
的形状;否则,您将得到一个错误,因为数组具有不同的形状,并且Seaborn
无法像使用pandas
数据帧那样解决它李>同样,如果将三个
(5,3)
数组传递给x
、y
和hue
,那么Seaborn将不知道该做什么。因此,您必须a)FLATTEN
所有数组并使它们的长度等于(15,0)
或b)使用数据帧相关问题 更多 >
编程相关推荐