直接使用matplotlib,而不是seaborn:
diff = np.array([np.random.normal(loc=i, size=(100,)) for i in range(10)])
fig, ax = plt.subplots()
for i in range(0,len(diff)):
ax.violinplot(dataset=diff[i],positions=[i])
或者,更紧凑:
fig, ax = plt.subplots()
ax.violinplot(dataset=diff.T,positions=range(10))
如果你的 numpy 数组是分开的:
array1 = np.random.normal(loc=0, size=(100,))
array2 = np.random.normal(loc=1, size=(100,))
array3 = np.random.normal(loc=2, size=(100,))
array4 = np.random.normal(loc=3, size=(100,))
array5 = np.random.normal(loc=4, size=(100,))
fig, ax = plt.subplots()
for i,arr in enumerate([array1, array2, array3, array4, array5]):
ax.violinplot(dataset=arr,positions=[i])