【问题标题】:Does anybody know a function to avoid point labels to overlap in R?有人知道避免点标签在 R 中重叠的功能吗?
【发布时间】:2020-05-18 19:39:30
【问题描述】:

三元图 你好。有人知道如何使用 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)

【问题讨论】:

  • ggternary(或其他名称)+ggrepel 包?

标签: r plotrix


【解决方案1】:

这会很困难,因为这些点都聚集在左下角。此外,诸如plotrix 中的thigamaphobe.labels 等辅助函数(以及该函数手册页中提到的其他函数)需要知道该点的坐标,但rysgran.ternary 不会返回该信息。其他一些三元绘图函数确实或提供了将 3d 坐标转换为 2d 绘图坐标的函数。

鉴于此,您可以通过以下一些方法来解决问题:

  1. 如果您正在打印到打印设备,请将绘图放大,这样重叠就不会那么严重。当我重新创建您的绘图并将窗口拖得更大时,许多重叠消失了。

  2. cex.labels= 更改为更小的值,例如.8.这会使标签变小。

  3. 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 在该点上方绘制所有标签。

  4. 更多的工作,但更多的控制。不要自动绘制标签。生成绘图,然后使用pt &lt;- locator() 并单击图表上的点以获取它们的绘图坐标。将此信息与points() 一起使用,将标签精确地绘制在您想要的位置。保存坐标,以便在重新生成绘图时,您已经计算出坐标。

【讨论】:

  • 哇,非常感谢。你拯救了我的一天。方法 3 确实有效。
猜你喜欢
  • 2011-10-10
  • 1970-01-01
  • 2020-07-06
  • 1970-01-01
  • 2019-12-07
  • 2014-03-02
  • 2021-12-31
  • 1970-01-01
  • 2010-12-15
相关资源
最近更新 更多