1. 是否有R库/函数可以在R图中实现智能标签放置?我try 了一些,但都有问题——许多标签相互重叠或其他点(或绘图中的其他对象,但我发现这更难处理).

  2. 如果没有,有什么方法可以轻松地帮助算法放置特定问题点的标签?需要最舒适、最高效的解决方案.

您可以使用my reproducible example来测试其他可能性,看看您是否能够获得比我更好的结果:

# data
x = c(0.8846, 1.1554, 0.9317, 0.9703, 0.9053, 0.9454, 1.0146, 0.9012, 
0.9055, 1.3307)
y = c(0.9828, 1.0329, 0.931, 1.3794, 0.9273, 0.9605, 1.0259, 0.9542, 
0.9717, 0.9357)
ShortSci = c("MotAlb", "PruMod", "EriRub", "LusMeg", "PhoOch", "PhoPho", 
"SaxRub", "TurMer", "TurPil", "TurPhi")

# basic plot
plot(x, y, asp=1)
abline(h = 1, col = "green")
abline(v = 1, col = "green")

For labelling, I then tried these possibilities, no one is really good:

  1. 这个很糟糕:

    文本(x,y,labels=ShortSci,cex=0.7,offset=10)

  2. 如果您不想为所有点放置标签,而只是 for each 点放置标签,那么这一个很好

    识别(x,y,标签=ShortSci,cex=0.7)

  3. 这张照片看起来很有希望,但也存在标签太靠近照片的问题

    需要( map 工具)

  4. 需要(plotrix)

require(calibrate)
textxy(x, y, labs=ShortSci, cx=0.7)

提前谢谢!

EDIT:待办事项:试试labcurve {Hmisc}.

推荐答案

我找到了解决办法!不幸的是,这并不是终极的、理想的,但它现在对我来说是最好的.它是半算法的,半人工的,所以与joran绘制的纯人工解决方案相比,它节省了时间.

我忽略了很多细节

用于放置标签的算法与文本使用的算法相同

所以,如果你像我在问题中写的那样使用identify()解决方案,那么you can affect the position of the label by not clicking directly on that point, but by clicking next to that point relatively in the desired direction!!!就很好用了!

缺点是只有4个位置(上、左、下、右),但我更喜欢其他4个位置(左上、右上、左下、右下)...所以我用它来标记我不感兴趣的点,以及我在Powerpoint演示文稿中直接标记的其他点,正如joran所建议的:-)

注:我还没有try directlabels lattice/ggplot解决方案,我仍然更喜欢使用基本绘图库.

R相关问答推荐

DT::可数据的正规表达OR运算符问题

在数据表中呈现数学符号

查找具有平局的多个列的最大值并返回列名或平局 destruct 者NA值

根据R中两个变量的两个条件删除带有dspirr的行

名称输出pmap on tible

pickerInput用于显示一条或多条geom_hline,这些线在图中具有不同 colored颜色

过滤器数据.基于两列的帧行和R中的外部向量

获取列中值更改的行号

使用整齐的计算(curl -curl )和杂音

移除仪表板Quarto中顶盖和车身之间的白色区域

使用列/行匹配将两个不同维度的矩阵相加

`lazy_dt`不支持`dplyr/across`?

汇总数据帧中的复制列,保持行的唯一性

我如何go 掉盒子图底部的数字?

Geom_arcbar()中出错:找不到函数";geom_arcbar";

层次树图的数据树

如何在使用Alpha时让geom_curve在箭头中显示恒定透明度

有没有办法将勾选/审查标记添加到R中的累积关联图中?

使用dqur在不同变量上创建具有多个条件的变量

子样本间系数检验的比较