箱形图与小提琴图对比 请注意,尽管小提琴图与Tukey(1977)的箱形图密切相关,但它们还添加了有用的信息,例如样本数据的分布(密度轨迹)。
默认情况下,箱形图显示1.5 *四分位数范围之外的数据点作为晶须上方或下方的异常值,而小提琴图则显示数据的整个范围。
关于箱形图及其历史的一般参考可以在这里找到:http://vita.had.co.nz/papers/boxplots.pdf
小提琴图需要 matplotlib >= 1.4。
有关小提琴绘制的更多信息,scikit-learn文档有一个很棒的部分:http://scikit-learn.org/stable/modules/density.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 import matplotlib.pyplot as pltimport numpy as npfig, axes = plt.subplots(nrows=1 , ncols=2 , figsize=(9 , 4 )) np.random.seed(19680801 ) all_data = [np.random.normal(0 , std, 100 ) for std in range (6 , 10 )] axes[0 ].violinplot(all_data, showmeans=False , showmedians=True ) axes[0 ].set_title('Violin plot' ) axes[1 ].boxplot(all_data) axes[1 ].set_title('Box plot' ) for ax in axes: ax.yaxis.grid(True ) ax.set_xticks([y + 1 for y in range (len (all_data))]) ax.set_xlabel('Four separate samples' ) ax.set_ylabel('Observed values' ) plt.setp(axes, xticks=[y + 1 for y in range (len (all_data))], xticklabels=['x1' , 'x2' , 'x3' , 'x4' ]) plt.show()
下载这个示例