matplotlib 如何创建小提琴情节

irlmq6kh  于 2023-05-01  发布在  其他
关注(0)|答案(1)|浏览(130)

我想创建10个小提琴情节,但在一个图表。我看了很多这样的例子:Violin plot matplotlib,什么显示我想在最后拥有什么。
但我不知道如何将其应用于真实的的数据集。它们都只是生成一些正态分布的随机数据。我有数据在形式D[10,730],如果我尝试从上面的链接调整它:例如:

axes[0].violinplot(all_data,showmeans=False,showmedians=True)

我的代码:

axes[0].violinplot(D,showmeans=False,showmedians=True)

它不起作用。应并行打印10个小提琴图(第一个尺寸为D)。
那么我的数据需要看起来像什么才能得到相同类型的小提琴情节呢?

j2qf4p5b

j2qf4p5b1#

你只需要转置你的数据数组D

axes[0].violinplot(D.T,showmeans=False,showmedians=True)

这似乎是matplotlib中的一个小bug。对于一维阵列和二维阵列的列表,以不一致的方式处理轴。

import numpy as np
import matplotlib.pyplot as plt

n_datasets = 10
n_samples = 730
data = np.random.randn(n_datasets,n_samples)

fig, axes = plt.subplots(1,3)

# http://matplotlib.org/examples/statistics/boxplot_vs_violin_demo.html
axes[0].violinplot([d for d in data])

# should be equivalent to:
axes[1].violinplot(data)

# is actually equivalent to
axes[2].violinplot(data.T)

你应该提交一份bug报告。

相关问题