如何给箱线图赋值并控制其宽度?
X<-c(1,2,,3,4,4,5,5,6,6,6,6,6,7)
我需要写最小值,最大值,第一四分位数,中位数和最后四分位数。我该怎么写呢?
mfpqipee1#
您可以使用horizontal = TRUE获取水平箱线图,使用axes = FALSE删除轴。staplewex = 1将装订宽度设置为与箱宽相同然后,您可以使用fivenum返回用于创建箱线图的统计数据,并将这些数据用作文本标签,不断修改y值,直到获得所需结果
horizontal = TRUE
axes = FALSE
staplewex = 1
fivenum
y
boxplot(X, horizontal = TRUE, axes = FALSE, staplewex = 1) text(x=fivenum(X), labels =fivenum(X), y=1.25)
请注意,我已经插入了一个3,作为示例数据X中缺少的值
3
X
clj7thdc2#
mnel给出的答案是完美的,假设(如示例所示)没有异常值,那么下须线和上须线就等于最小值和最大值,但是,如果存在异常值,并且我们没有在箱线图函数中指定 * range = 0 *,我们就不能得到正确的标签值,相反,我们可以使用:
range = 0
text(x=boxplot.stats(X)$stats, labels = boxplot.stats(X)$stats, y = 1.25)
让我们看一个例子:
X <- c(1,2,3,3,4,4,5,5,6,6,6,6,10,15) boxplot(X, horizontal = TRUE, axes = FALSE, staplewex = 1)
1.错误值text(x = fivenum(X), labels = fivenum(X), y = 1.25)
text(x = fivenum(X), labels = fivenum(X), y = 1.25)
1.正确值:text(x = boxplot.stats(X)$stats, labels = boxplot.stats(X)$stats, y = 1.25)
text(x = boxplot.stats(X)$stats, labels = boxplot.stats(X)$stats, y = 1.25)
在text中切换x和y的参数。
text
boxplot(X, axes = FALSE, staplewex = 1) text(y = boxplot.stats(X)$stats, labels = boxplot.stats(X)$stats, x = 1.25)
kxeu7u2r3#
我在试图理解箱线图四分位数标签并与汇总函数值进行比较时遇到了一些问题,所以我想与您分享。有时使用fivenum或stats的箱线图中的四分位数标签与r汇总函数值相比会有差异。这种情况只发生在偶数数据集上。例如(使用文本(x =箱线图.统计(X)$统计,标签=箱线图.统计(X)$统计,y = 1.25)):
product<-c(3,12,20,25,30,35,70,70,80,150) summary(product) Min. 1st Qu. Median Mean 3rd Qu. Max. 3.00 21.25 32.50 49.50 70.00 150.00 boxplot(product,horizontal=TRUE,col="grey",staplewex=1,axes=FALSE) text(x = boxplot.stats(product)$stats, labels = boxplot.stats(product)$stats, y = 1.25)
BoxplotFiveNum如图所示,这些值不匹配。在这种情况下,您可以使用分位数函数:
text(x=quantile(produto),labels=quantile(produto),y=1.25)
BoxplotQuantile现在你应该得到与汇总函数中列出的值相同的值。否则就忽略汇总函数,使用fiveNum值代替。差异的出现是由于统计学家之间缺乏普遍的一致性。谷歌搜索会显示你的分位数计算的差异。
lyr7nygr4#
如何做到这一点,但在多箱线图
示例数据:
a <- data.frame( Rank = c(1,2,3,1,2,3,1,2,3,3,2,1,3,2,1,2,1,3,3,3,1,1,2,2,1,3 ), Time = c(1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3), Value = c(5,10,15,20,30,50,70,80,100,5,7,9,11,15,17,19,17,19,100,200,300,400,500,700,1000,200)) boxplot(a$Value[a$Rank==1] ~ a$Time[a$Rank==1])
4条答案
按热度按时间mfpqipee1#
您可以使用
horizontal = TRUE
获取水平箱线图,使用axes = FALSE
删除轴。staplewex = 1
将装订宽度设置为与箱宽相同然后,您可以使用
fivenum
返回用于创建箱线图的统计数据,并将这些数据用作文本标签,不断修改y
值,直到获得所需结果请注意,我已经插入了一个
3
,作为示例数据X
中缺少的值clj7thdc2#
mnel给出的答案是完美的,假设(如示例所示)没有异常值,那么下须线和上须线就等于最小值和最大值,但是,如果存在异常值,并且我们没有在箱线图函数中指定 *
range = 0
*,我们就不能得到正确的标签值,相反,我们可以使用:让我们看一个例子:
1.错误值
text(x = fivenum(X), labels = fivenum(X), y = 1.25)
1.正确值:
text(x = boxplot.stats(X)$stats, labels = boxplot.stats(X)$stats, y = 1.25)
在
text
中切换x和y的参数。kxeu7u2r3#
我在试图理解箱线图四分位数标签并与汇总函数值进行比较时遇到了一些问题,所以我想与您分享。
有时使用fivenum或stats的箱线图中的四分位数标签与r汇总函数值相比会有差异。这种情况只发生在偶数数据集上。
例如(使用文本(x =箱线图.统计(X)$统计,标签=箱线图.统计(X)$统计,y = 1.25)):
BoxplotFiveNum
如图所示,这些值不匹配。
在这种情况下,您可以使用分位数函数:
BoxplotQuantile
现在你应该得到与汇总函数中列出的值相同的值。否则就忽略汇总函数,使用fiveNum值代替。差异的出现是由于统计学家之间缺乏普遍的一致性。
谷歌搜索会显示你的分位数计算的差异。
lyr7nygr4#
如何做到这一点,但在多箱线图
示例数据: