2014-09-22 174 views
0

我有以下數據如何在R中的barplot中顯示x值(名稱)?

r<-structure(list(Relation = structure(c(3L, 4L, 1L, 2L), .Label = c("Neighbours", 
"Other known persons", "Parents/Close Family Members", "Relatives" 
), class = "factor"), Number = c(539L, 2315L, 10782L, 18171L)), .Names = c("Relation", 
"Number"), class = "data.frame", row.names = c(NA, -4L)) 

當我繪製barplot使用下面的命令:

barplot(r[,2],names.arg=r$Relation,col="green") 

關係列名稱下的x值的名稱是不可見/在圖中示出。這裏有什麼問題? 謝謝

+1

代碼中引用的'm'對象在哪裏?替換爲'names.arg = letters [1:4]'似乎命名條形圖。你的意思是'barplot(r [,2],names.arg = r $ Relation,col =「green」)'? – MrFlick 2014-09-22 17:30:18

+0

是的,先生,基本上,R在x軸上跳過較長的名稱我已將名稱更改爲在此處縮短。有沒有解決方案? – 2014-09-22 17:33:08

+0

使你的陰謀更寬。 R不喜歡重疊軸標籤。 – MrFlick 2014-09-22 17:36:28

回答

3

嘗試替代在names.arg每一空間中的線料:

barplot(r[,2],names.arg=gsub("\\s","\n", r$Relation),col="green", line=2) 

enter image description here

(需要對標籤向下與 「線」 參數轉移)

3

答案「這裏有什麼問題」在評論中。這是一個使用ggplot的解決方案,它可以更好地管理長名稱。

library(ggplot2) 
ggplot(r, aes(x=Relation, y=Number)) + 
    geom_bar(stat="identity", fill="lightgreen", color="grey50") 

enter image description here

當你有很長的名字,像這樣有時是更好地使用單槓。

ggplot(r, aes(x=Relation, y=Number)) + 
    geom_bar(stat="identity", fill="lightgreen", color="grey50")+ 
    coord_flip() 

enter image description here