如何将stat_peaks与ggplot中的密度图一起使用

我有一个看起来像这样的图,并且想要在其上绘制峰:

如何将stat_peaks与ggplot中的密度图一起使用

这是我当前的代码:

  ggplot(df,aes(x=xval,fill=sample)) + 
  geom_density(alpha=.5)+
  xlim(c(median(xval)-0.001,median(xval)+0.001))+
  labs(title=paste0("Title ",datetoday),x="intensity",fill="concentration")+
  ggsave((paste0("file ",datetoday,".png")))

每当我尝试将stat_peaks添加到图形中时,都会出现错误“错误:stat_peaks需要以下缺失的美感:y”-但我不确定如何将y值设置为密度。

TIA

caiyuanqiang 回答:如何将stat_peaks与ggplot中的密度图一起使用

这个问题已经answered了。

您可以通过三个步骤完成此操作:

  1. 绘制密度
  2. 使用ggplot_build
  3. 生成图的“构建”对象
  4. 从“构建”对象中提取峰并绘制峰图
library(ggplot2)
library(ggpmisc)

p <- ggplot(df,aes(x=xval,fill=sample)) + 
  geom_density(alpha=.5)+
  xlim(c(median(xval)-0.001,median(xval)+0.001))+
  labs(title=paste0("Title ",datetoday),x="intensity",fill="concentration")

pb <- ggplot_build(p)
p + stat_peaks(
  data = pb[['data']][[1]],# take a look at this object
  aes(x = x,y = density),colour = "red",size = 3
)
ggsave((paste0("file ",datetoday,".png")))
本文链接:https://www.f2er.com/3144569.html

大家都在问