2014-08-31 61 views
2

此问题与:R: how to label the x-axis of a boxplot在R中添加名称至boxplot

当绘制多个列时,会出现名称。但是,当只有一列绘制,名字没有出现,即使使用的名称= ..说法:

ddf = structure(list(apple = c(1, 2, 3, 4, 5), banana = c(5, 4, 3, 
2, 1), watermelon = c(4, 5, 6, 7, 8)), .Names = c("apple", "banana", 
"watermelon"), row.names = c(NA, -5L), class = "data.frame") 

ddf 
    apple banana watermelon 
1  1  5   4 
2  2  4   5 
3  3  3   6 
4  4  2   7 
5  5  1   8 


boxplot(ddf[,1:2]) 
boxplot(ddf[,1]) 

enter image description here

enter image description here

也是继不起作用:

boxplot(ddf[,1], names='apple') 
boxplot(ddf[,1], names=c('apple')) 

如何在仅使用一列的情况下将名称添加到boxplot?谢谢你的帮助。

回答

4

也许你可以使用“xlab”:

boxplot(ddf[,1], xlab="apple") 
1

一种方法是使用mtext

boxplot(ddf[,1]) 
mtext("apple", side=1, line=1) 
1

箱线图在x=1默认添加,所以你可以在蜱和轴加标记为x=1,如同绘制多列时会发生的那样。

axis(side = 1, at = 1, labels = 'apple') 
5

有一个show.names=参数bxp,这boxplot电话。因此,你可以这样做:

boxplot(ddf[1],show.names=TRUE) 

确认这是ddf[1]ddf[,1]了,所以这个名字被保留。

+0

+1不知道'show.names' – akrun 2014-08-31 10:02:47

+0

为什么show.names = TRUE不需要多列?这可以被认为是一个错误? – rnso 2014-08-31 10:07:59

+0

@rnso - 默认情况下,只有一个类别没有标签。我不会说它是一个错误,可能更多的是故意的设计选择。另外,使用'ddf [,1]''将永远不会给你一个名字,因为它会返回一个未命名的向量,因为默认情况下'“[''具有'drop = TRUE'。 – thelatemail 2014-08-31 10:09:48

1

我还使用了Boxplot {car}的show.names解决方案。在我的情况下,我想在一个boxplot中总结一些列,并同时标出异常值,因此我使用了Boxplot

Boxplot(df, show.names = T, names = "test samples", labels = rownames(df), id.method = c("y"), id.n=9) 

对于boxplot你不需要支持的名单为show.names,如果你满意你的数据框的名称。对于Boxplot,您必须提供剧情名称。