1)是否有任何R库/函数可以在R图中实现INTELLIGENT标签的放置?我尝试了一些,但它们都是有问题的-许多标签彼此重叠或与其他点(或图中的其他对象重叠),但我发现这很难处理。
2)如果没有,有什么方法可以通过特定问题点的标签放置来舒适地帮助算法?需要最舒适有效的解决方案。
您可以使用我的可复制示例来测试和测试其他可能性,并查看是否能够获得比我更好的结果:
# 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")
为了贴标签,我尝试了这些可能性,没有人真的很不错:
1)这很可怕:
text(x, y, labels = ShortSci, cex= 0.7, offset = 10)
2)如果您不想为所有点都放置标签,而只是为离群值放置标签,那么这是一个好方法,但是仍然经常将标签放置错误:
identify(x, y, labels = ShortSci, cex = 0.7)
3)这个看上去很不合理,但是存在标签太靠近点的问题;我不得不在它们之间填充空格,但这并没有太大帮助:
require(maptools)
pointLabel(x, y, labels = paste(" ", ShortSci, " ", sep=""), cex=0.7)
4)
require(plotrix)
thigmophobe.labels(x, y, labels = ShortSci, cex=0.7, offset=0.5)
5)
require(calibrate)
textxy(x, y, labs=ShortSci, cx=0.7)
先感谢您!
编辑:待办事项:试试labcurve {Hmisc}。
install.packages("FField")
library(FField)
FFieldPtRepDemo()