混合使用X和Y坐标系统

4
我正在尝试在text()grid.text()函数(或R中的任何其他类似函数)中使用不同的 x 和 y 坐标系。在下面的示例中,我想将text()函数的 Y 坐标设置为屏幕底部的10%,而不是使用 Y 轴刻度。我可以通过grid.text()并使用 y = 0.1 完成它,但我不知道如何将grid.text()的 X 位置设置为绘图的 X 刻度。基本上,我想混合text()grid.text()函数的功能。我知道grid.text有一个传递单位的选项,但我不知道如何使用来自绘图的单位。
library(grid)

test= data.frame(
  x = c(1,2,3),
  y = c(12,10,3),
  n = c(75,76,73)
  )

par(mar = c(13,5,2,3))
plot(test$y ~ test$x,type="b")

text(x=test$x, y=-2, label=test$n, xpd=T)

enter image description here

1个回答

3

重写:

使用grconvertY()函数将默认的7英寸显示尺寸转换为用户坐标:

opar <- par(mar = c(13,5,2,3))
plot(test$y ~ test$x,type="b")
text(x=test$x, y=grconvertY(0.1*7 , "in", "user") , label=test$n, xpd=T)
par(opar)

默认显示是7英寸正方形(至少在我的机器上),但您需要为text函数提供用户坐标。 grconvertYgrconvertX可以执行该转换,尽管您对X维度的用户坐标感到满意,因此不应使用grconvertX

enter image description here


谢谢!我觉得添加grid.text实际上让问题更加混乱。我需要使用图形的X坐标。在你的代码中,x位于0.5,但是我需要x成为数据集中的一个x值,而y应该为0.1。我不知道这是否可以做到。谢谢。 - Max C
我想我明白你的意思。你需要从设备坐标转换为用户坐标,然后传递给 text - IRTFM
谢谢!我来自SAS背景,其中x和y坐标可以使用不同的坐标系(设备与用户)。我尝试使用用户坐标和设备坐标通过grid.text来实现,但无法使其正常工作。理想情况下,我希望在TEXT函数中使用不同的坐标系(设备),但GRID.TEXT也可以。 - Max C
我想我现在有你要求的东西了。 - IRTFM

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接