我目前正在尝试生成一个自动脚本来创建标记的折线图.此线图将具有1个或更多个最大值,如果它们高于某个阈值,则必须标记.目前我可以标记最大值.

为此,我在校准包中使用textxy()
然而,当出现多个峰值时,事情会变得更复杂

很快就会很难看到标签的分配位置.所以我想要的是从标签到峰顶(或下面)的一条线.
我今天整天环顾四周,没有运气.我尝试了R中智能点标签放置的所有内容
wordcloud,但不幸的是,它不允许你偏移标签,如果你只有一个标签就会失败.
识别,太慢了.我需要能够自动执行此操作,以便每天拍摄数千张图像.
pointLabel,thigmophobe.labels都没有工作,因为他们没有划线,我也没有处理很多标签.
我还尝试在标签和点之间手动绘制箭头,但这非常耗时.
有谁知道任何包或简单的方法来做到这一点?这不可能自动化吗?
谢谢!卡梅伦
您可以尝试一下labelPeaks该MALDIquant包提供的功能。其放置峰标签的算法取自 Ian Fellows 的wordcloud::wordlayout。
library("MALDIquant")
data("fiedler2009subset")
## a simplified preprocessing to provide some example data
s <- trim(fiedler2009subset[[1]], c(3000, 3500))
r <- removeBaseline(s)
p <- detectPeaks(r)
## plot the peaks and label them
plot(p, ylim=c(0, 30000))
labelPeaks(p, avoidOverlap=TRUE, underline=FALSE, digits=1)
Run Code Online (Sandbox Code Playgroud)

## rotate labels by 90 degree
plot(p, ylim=c(0, 30000))
labelPeaks(p, underline=FALSE, srt=90, adj=c(0, 0.5), col="red")
Run Code Online (Sandbox Code Playgroud)

## label peaks above 5000
plot(p, ylim=c(0, 30000))
labelPeaks(p, index=intensity(p) > 5000)
Run Code Online (Sandbox Code Playgroud)

请参阅?labelPeaks了解更多详情。