2014-02-17 98 views
1

我嘗試用每個圖形的平均比以紀念我的圖表標註方式:GGPLOT2在幾個圖

ggplot(diamonds, aes(x = carat, fill=cut)) + 
stat_density(aes(ymax = ..density.., ymin = -..density..), 
    geom = "ribbon", position = "identity") + 
    facet_grid(. ~ cut) + 
    xlim(0,2.5) + 
    geom_text(data = NULL, x = 0.6, y = 0, label = mean(carat), size=5) + 
    coord_flip() 

例如,在這裏,我想「廣交會」的曲線圖顯示的「大路貨「,」好「的顯示平均值爲」良好「等。

另外,但是這是一個額外的,我想如果平均值爲1.0,則定位爲x,而平均值顯示在x = 1.0時

回答

1

有很多方法可以獲得標籤(和l的位置abels)。在這裏,dplyr包用於總結diamonds數據幀;即獲得所需的手段。另請注意,標籤的格式是兩位小數。在下面的代碼中,diamonds2數據幀包含手段和標籤,用於撥打geom_text

library(ggplot2) 
library(dplyr) 

diamonds2 = transform(summarise(group_by(diamonds, cut), label = mean(carat)), 
    Label = sprintf("%.02f", label)) 

ggplot(diamonds, aes(x = carat, fill=cut)) + 
stat_density(aes(ymax = ..density.., ymin = -..density..), 
    geom = "ribbon", position = "identity") + 
facet_grid(. ~ cut) + 
xlim(0, 2.5) + 
geom_text(data = diamonds2, aes(label = Label, x = label, y = 0), size=5) + 
coord_flip() 

enter image description here

+0

'警告在install.packages:包 'dplyr' 不可用(對於R版本2.15.1)',我不能更換的R工作室的版本(在線服務器服務) – Muramasa

+1

從plyr包中嘗試'ddply':'library(plyr); diamonds2 = transform(ddply(diamonds,。(cut),summarize,label = mean(carat)),Label = sprintf(「%。02f」,label))'否則查看'?aggregate'或'?by'。 2.15.1 - 將近2歲。 –

+0

我已經按照你的推薦,但如果我建立這個圖,它可能會看到'geom_text'中的平均值和'geom_boxplot'中的平均值的差異,我不知道如何解釋它... http:///snag.gy/xtbSs.jpg – Muramasa