【发布时间】:2017-10-03 06:38:47
【问题描述】:
我想使用matplotlib 绘制boxplot 图形。
这是生成图形的代码:
pt = plt.boxplot(all_data, sym='+')
plt.yticks([0, 0.2, 0.4, 0.6, 0.8, 1.0], ['0', '20%', '40%', '60%', '80%', '100%'])
plt.xticks([y + 1 for y in range(len(all_data))], ['WMC', 'DIT', 'CBO', 'RFC', 'LCOM', 'Ca', 'NPM'])
mean = []
for line in pt['medians']:
x, y = line.get_xydata()[1] # top of median line
plt.text(x, y, '%.1f' % x,
horizontalalignment='center') # draw above, centered
plt.savefig("boxplot1.pdf")
箱线图中的方框显示数据集的第 1、第 2 和第 3 个四分位数(Q1、中位数和 Q3)。对于每个框,都有一条线(也称为胡须,默认长度为 1.5*IQR(四分位间距))。所以基本上我要寻找的不是使用默认值,而是明确设置下限和上限(或晶须长度)为我指定的某个值。
有人能解释一下吗?
【问题讨论】:
-
什么是 Q1,这不会给你 7 个不同的范围吗?或者,如果您选择第一个栏,则第二个栏将被剪掉。这是你想要的吗?您可能需要更新问题并将
Q1 +/- 1.5 * IQR替换为可以理解的内容。 -
无论如何,如果不将问题分成两部分,(1) 得到四分位数,(2) 设置 ylimit,你会让每个人都更难。 this question 的重复,与 this question 结合。另见this question
-
@ImportanceOfBeingErnest 您好,谢谢您的信息。对于每个框,顶部有一行(默认情况下应该等于
Q1+1.5*IQR?),底部有另一行。所以基本上我正在寻找的不是使用默认值,而是明确地将顶线和底线设置到某个值。我清楚吗? -
@ImportanceOfBeingErnest 我检查了问题,似乎不重复。
标签: python matplotlib