R中的屏幕坐标

时间:2014-02-26 15:52:31

标签: r graphics

我想在当前设备上绘制两条垂直线。无论输出的宽高比和器件尺寸如何,它们都应在器件上具有相同的表观长度。

这一切都可行吗?原则上,这是在屏幕上绘制完美圆圈的问题。

3 个答案:

答案 0 :(得分:3)

有几种方法,我觉得在网格图形中更容易

library(grid)

grid.circle()
vp <- viewport(width=unit(0.5, "snpc"), height=unit(0.5, "snpc"))
grid.rect(vp=vp, gp=gpar(lty=2))
grid.segments(x0=c(0,0), x1=c(1,1), 
              y0=c(0,1), y1=c(1,0), 
              default.units="npc", vp=vp)

答案 1 :(得分:3)

您可以检索当前的图形窗口坐标。感谢Josh O'Brian在一段时间内为我提供此代码。首先你创建一个窗口(或绘制一些东西),然后运行这一行:

 myasp <- with(par(),(pin[2]/pin[1])/(diff(usr[3:4])/diff(usr[1:2])))

然后使用该方面信息来调整您要绘制的线条的长度。

答案 2 :(得分:0)

您可能对grconvertXgrconvertY函数感兴趣。使用这些可以指定以英寸或其他单位为单位的坐标,并从中计算用于绘制线条的用户坐标。