r - 有人知道避免点标签在 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)
解决方案
这将是困难的,因为这些点都聚集在左下角。此外,诸如thigamaphobe.labels
in之类的辅助函数plotrix
(以及该函数手册页中提到的其他函数)需要知道该点的坐标,但rysgran.ternary
不返回该信息。其他一些三元绘图函数执行或提供将 3d 坐标转换为 2d 绘图坐标的函数。
鉴于此,您可以通过以下一些方法来解决问题:
如果您正在打印到打印设备,请将绘图放大,以使重叠不那么严重。当我重新创建您的绘图并将窗口拖得更大时,许多重叠都消失了。
更改
cex.labels=
为更小的值,例如 0.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()
将标签精确地绘制在您想要的位置。保存坐标,这样每当您重新生成绘图时,您就已经计算了坐标。
推荐阅读
- javascript - Vue.js 中的嵌套对象
- javascript - 动态分配的对象属性未在页面加载时呈现
- list - Symfony & Easyadmin:如何在同一页面上显示多个实体列表
- javascript - 在页面调整大小之前不会显示剑道图
- delphi - 如何在过程参数('嵌套')中传递参数?
- mongodb - 使用两个集合的 MongoDB 查询
- angular - 无法检测来自条形码或键盘的输入。角 2+
- google-sheets - 根据 Google 表格中的时间表数据计算员工的工作时间和休息时间
- asp.net-core - 尝试将数据发布到 Asp.net 核心 Web api 时在 Angular 8 中出现 CORS 错误?
- docker - Docker Swarm 堆栈部署特定服务