我試圖用小平面內的ggplot繪製數據的分佈/密度。這裏是我現在所在的地方,紅線顯示每個方面顯示的平均值。現在在這裏,平均值是沒有意義的,我希望有類似的繪圖,密度的峯值用xintercept和文本顯示。
我用於機構的代碼是這樣的:使用R表示在各個小平面上的主峯高度
data <- read.table("sample.csv", header=F, sep=',')
colnames(data) <- c("frame", "val")
attach(data)
library(ggplot2)
library(grid)
library(plyr)
xdat <- ddply(data,"frame", transform, val_mean = signif(mean(val),3), med.x = signif(mean(val),3), med.y=signif(mean(density(val)$y),3))
ppi <- 500
png("sample.png", width=4*ppi, height=4*ppi, res=ppi)
hp <-ggplot(data=data, aes(x=val))+
geom_density() +
geom_vline(aes(xintercept=val_mean),xdat, color="red",linetype="dashed",size=1) +
theme_bw()
hp<-hp + facet_wrap (~ frame, ncol=2, scales="free_y") +
geom_text(data = xdat, aes(x=med.x,y=med.y,label=val_mean))
print(hp)
dev.off()
,並用於繪製此圖中的數據是:
data <- data.frame(
"frame"=c(rep("A",9), rep("B", 13), rep("C", 7)),
"val"=c(1, rep(2,4), 4, 5, 6, rep(1,6), 2, rep(3,7), 1, rep(4,6))
)
我知道已經有一些帖子,其中R已使用找到值中的峯值。但我希望繪製密度峯值,我無法找到任何解決方案(或者我錯過了它)。是否有可能在R中快速計算峯值並在不同的方面繪圖? 非常感謝您的時間和幫助!
我不知道的方式從ggplot內做到這一點上的蒼蠅,但[這](http://stackoverflow.com/a/3614065/324364)答案應該指向正確的方向。 – joran