패싯 내에서 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