我目前正在尝试生成一个自动化脚本来创建一个带标签的折线图。此折线图将具有 1 个或多个最大值,如果它们高于某个阈值,则必须对其进行标记。
目前我可以很好地标记最大值。
为此,我在校准包中使用 textxy()
然而,当出现多个峰值时,事情会变得更加复杂:
很快就很难看到标签被分配到哪里了。所以我想要的是从标签到峰顶(或正下方)的一条线。
我今天环顾四周一整天都没有运气。我在 Intelligent point label placement in 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)
## rotate labels by 90 degree
plot(p, ylim=c(0, 30000))
labelPeaks(p, underline=FALSE, srt=90, adj=c(0, 0.5), col="red")
## label peaks above 5000
plot(p, ylim=c(0, 30000))
labelPeaks(p, index=intensity(p) > 5000)
请查看
?labelPeaks
更多细节。
关于r - 从标签画线到R中的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30249923/