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

标签 r native lattice r-grid

我的问题的核心:

我正在尝试使用网格包的convertUnit、convertX 和convertY 函数将npc 单位转换为本地单位。 (npc=归一化父坐标,可能称为 ndc 单位,归一化设备坐标为基础图形 R 中的一些坐标。我试图获取 native 单位,即绘制绘图的单位,因此就 xlim 和 ylim 单位而言。)但是,当我尝试这样做时:

> xyplot(1:10~1:10)
> convertX(unit(.9, "npc"), "native")
[1] 484.2native

当我期望接近 9 的数字作为 native x 坐标时。看来convertX正在返回设备坐标/像素中的单位。

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

问题 网格是否可以从 npc 转换回事件绘图窗口的 native 坐标?为什么 ConvertX 返回像素而不是 native 坐标?

提前致谢。

编辑标签和之前遗漏 xyplot 的草率错误。我很抱歉,但这对于 xyplot 来说是成立的。

最佳答案

‘“native”’位置和尺寸相对于视口(viewport)的‘xscale’和‘yscale’。 转换发生在当前视口(viewport)内。

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

因此,您首先需要一个视口(viewport)才能获取合理的值。

关于r - 使用 R 中的网格将单位从 npc 转换为本地单位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7045990/

相关文章:

linux - 为什么两个不同的用户在 Linux 中看到不同的 R 包位置?

r - 将具有特定值的新行添加到第一列中,然后将 "-"添加到其余列中

r - 优雅地结合连续和因子栅格

r - Latticeplot 中的一些奇怪的东西

r - 在数据帧的数字中放置点

.net - 在 Visual Studio 中单步执行 "managed to native transition"?

java - 如何在 Java 中使用 pid 获取进程信息?

ios - 检查 JSON 对象是否为 null swift 3

r - xyplot 中的多个 ablines

r - 在 dplyr select 中使用 perl=TRUE regex