小编use*_*527的帖子

使用R在整个刻面上显示密度的主峰

我试图在facet中使用ggplot来绘制数据的分布/密度.这是我现在所拥有的,其中红线显示平均值,每个方面显示平均值.现在,平均值没有意义,我希望有类似的绘图,其中密度的峰值用xintercept和文本显示.
在此输入图像描述 我用于手段的代码是这样的:

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()
Run Code Online (Sandbox Code Playgroud)

并且用于绘制该图的数据是:

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))
    )
Run Code Online (Sandbox Code Playgroud)

我知道有一些帖子用R来查找值中的峰值.但我希望在密度上绘制峰值,我无法找到任何解决方案(或者我可能错过了它).是否有可能在R中即时计算峰值并在不同方面进行绘图?非常感谢您的时间和帮助!!

plot r facet ggplot2 probability-density

4
推荐指数
1
解决办法
2407
查看次数

标签 统计

facet ×1

ggplot2 ×1

plot ×1

probability-density ×1

r ×1