我想在当前设备上绘制两条垂直线。无论输出的宽高比和器件尺寸如何,它们都应在器件上具有相同的表观长度。
这一切都可行吗?原则上,这是在屏幕上绘制完美圆圈的问题。
答案 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)
您可能对grconvertX
和grconvertY
函数感兴趣。使用这些可以指定以英寸或其他单位为单位的坐标,并从中计算用于绘制线条的用户坐标。