有人知道避免点标签在 R 中重叠的功能吗?
Does anybody know a function to avoid point labels to overlap in R?
三元图
您好。有人知道如何使用 PLOTRIX 的 thigmophobe.labels 吗?或任何其他使点标签无效重叠的功能?我正在尝试用沉积物数据制作三元图,但我遇到了这个问题,我不知道如何解决。一些点标签重叠。也许这很简单,但我是一个新的 R 用户...
这是代码示例。
library ('rysgran')
data (camargo2001)
class.percent (camargo2001, mode="total")
percent <- class.percent(camargo2001, mode="total")
x<-percent[2:4]
rysgran.ternary(x, method = "pejrup", lang = "e", main="",
show.labels=FALSE, label.points=TRUE, axis.labels = NULL, show.names = TRUE,
cex.labels= 1, cex.points=0.9, show.legend=FALSE,
cex.axis=1, cex.names = 0.8, col.names = "blue", col = "blue",
col.labels= "black", col.axis= "black", col.lines= "black",
pch = 16, lty.grid = 10, pos=3)
这会很困难,因为这些点非常集中在左下角。 plotrix
中的 thigamaphobe.labels
等辅助函数(以及函数手册页中提到的其他函数)也需要知道点的坐标,但 rysgran.ternary
不需要 return 该信息。其他一些三元绘图函数执行或提供将 3d 坐标转换为 2d 绘图坐标的函数。
鉴于此,您可以通过以下一些方法解决问题:
如果您要打印到打印设备,请将绘图放大,这样重叠就不会那么严重。当我重新创建你的情节并将 window 拖得更大时,许多重叠消失了。
将 cex.labels=
更改为更小的值,例如.8.这将使标签变小。
用 pos=c(3, 2, 1, 1, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3)
重新定位标签。这告诉 R 在哪里绘制标签相对于点,1-below,2-left,3-above,4-right。当前,您正在使用点上方的 3 绘制所有标签。
更多的工作,但更多的控制。不要自动绘制标签。生成图,然后使用 pt <- locator()
并单击图上的点以获取它们的图坐标。将此信息与 points()
一起使用,以将标签准确地绘制在您想要的位置。保存坐标,这样无论何时重新生成绘图,坐标都已经计算好了。
三元图
这是代码示例。
library ('rysgran')
data (camargo2001)
class.percent (camargo2001, mode="total")
percent <- class.percent(camargo2001, mode="total")
x<-percent[2:4]
rysgran.ternary(x, method = "pejrup", lang = "e", main="",
show.labels=FALSE, label.points=TRUE, axis.labels = NULL, show.names = TRUE,
cex.labels= 1, cex.points=0.9, show.legend=FALSE,
cex.axis=1, cex.names = 0.8, col.names = "blue", col = "blue",
col.labels= "black", col.axis= "black", col.lines= "black",
pch = 16, lty.grid = 10, pos=3)
这会很困难,因为这些点非常集中在左下角。 plotrix
中的 thigamaphobe.labels
等辅助函数(以及函数手册页中提到的其他函数)也需要知道点的坐标,但 rysgran.ternary
不需要 return 该信息。其他一些三元绘图函数执行或提供将 3d 坐标转换为 2d 绘图坐标的函数。
鉴于此,您可以通过以下一些方法解决问题:
如果您要打印到打印设备,请将绘图放大,这样重叠就不会那么严重。当我重新创建你的情节并将 window 拖得更大时,许多重叠消失了。
将
cex.labels=
更改为更小的值,例如.8.这将使标签变小。用
pos=c(3, 2, 1, 1, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3)
重新定位标签。这告诉 R 在哪里绘制标签相对于点,1-below,2-left,3-above,4-right。当前,您正在使用点上方的 3 绘制所有标签。更多的工作,但更多的控制。不要自动绘制标签。生成图,然后使用
pt <- locator()
并单击图上的点以获取它们的图坐标。将此信息与points()
一起使用,以将标签准确地绘制在您想要的位置。保存坐标,这样无论何时重新生成绘图,坐标都已经计算好了。