使用R中的网格将单位从npc转换为本机

And*_*rew 6 native r lattice r-grid

我问题的核心:

我正在尝试使用网格包的convertUnit,convertX和convertY函数将npc单位转换为本机单位.(NPC =归父坐标,可能被称为NDC单位,标准化设备坐标到一些基础的图形R.我试图让本机台,那些在该地块绘制,所以在XLIM和ylim单位来.)然而,当我尝试这样做时:

> xyplot(1:10~1:10)
> convertX(unit(.9, "npc"), "native")
[1] 484.2native
Run Code Online (Sandbox Code Playgroud)

当我期待一个接近9的数字作为原生x坐标.看来convertX正在返回设备坐标/像素中的单位.

推理: 我正在尝试使用基本定位器类型设备返回npc坐标,并从那些npc坐标转换为绘制图形的本机坐标.虽然我可以使用基本图形的定位器或grid.locator,但我试图通过从npc转换回本机来扩展这个新的非阻塞定位器的功能到网格/点阵图形.convertUnit和convertY也不起作用.

问题 网格是否有可能从npc转换回活动的绘图窗口的原生坐标?为什么convertX返回像素而不是原生坐标?

非常感谢提前.

编辑标签和草率错误之前留下xyplot.我道歉,但它与xyplot一致.

Ido*_*mir 1

\xe2\x80\x98"native"\xe2\x80\x99 位置和尺寸相对于视口的 \xe2\x80\x98xscale\xe2\x80\x99 和 \xe2\x80\x98yscale\xe2\x80\ x99。\n转换发生在当前视口内。

\n\n
> plot(1:10)\n> convertX(unit(.9,"npc"),"native")\n[1] 453.6native\n> pushViewport(viewport())\n> convertX(unit(.9,"npc"),"native")\n[1] 0.9native\n> convertX(unit(.1,"npc"),"picas")\n[1] 4.21575picas #making window smaller\n> convertX(unit(.1,"npc"),"picas")\n[1] 1.9798375984252picas #making window larger\n> convertX(unit(.1,"npc"),"picas")\n[1] 5.25783218503937picas\n
Run Code Online (Sandbox Code Playgroud)\n\n

因此,您首先需要一个视口来获取合理的值。

\n