2014-08-31 96 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,您必須提供劇情名稱。