gpt4 book ai didi

r - 从标签画线到R中的点

转载 作者:行者123 更新时间:2023-12-04 11:25:26 24 4
gpt4 key购买 nike

我目前正在尝试生成一个自动化脚本来创建一个带标签的折线图。此折线图将具有 1 个或多个最大值,如果它们高于某个阈值,则必须对其进行标记。
目前我可以很好地标记最大值。

https://drive.google.com/file/d/0B50V8cCfhJDQWF94SG85NXVZY1k/view?usp=sharing

为此,我在校准包中使用 textxy()

然而,当出现多个峰值时,事情会变得更加复杂:

https://drive.google.com/file/d/0B50V8cCfhJDQUmF5VERhUV8zNmc/view?usp=sharing

很快就很难看到标签被分配到哪里了。所以我想要的是从标签到峰顶(或正下方)的一条线。

我今天环顾四周一整天都没有运气。我在 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)

enter image description here
## rotate labels by 90 degree
plot(p, ylim=c(0, 30000))
labelPeaks(p, underline=FALSE, srt=90, adj=c(0, 0.5), col="red")

enter image description here
## label peaks above 5000
plot(p, ylim=c(0, 30000))
labelPeaks(p, index=intensity(p) > 5000)

enter image description here

请查看 ?labelPeaks更多细节。

关于r - 从标签画线到R中的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30249923/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com