R:网格包中的绝对坐标
R: absolute coordinates in grid package
在网格包中,默认情况下,新视口中的 x 和 y 位置范围介于 0 和 1 之间(相对于视口的宽度/高度)。
为了绘制值,我必须将值转换为 0 到 1 之间的范围:
library(grid)
vect1 <- rnorm(20)
vect1_relative <- vect1-min(vect1)
vect1_relative <- vect1_relative/max(vect1_relative)
vect2 <- rnorm(20)
vect2_relative <- vect2-min(vect2)
vect2_relative <- vect2_relative/max(vect2_relative)
pushViewport(viewport())
grid.lines(x = c(0,1),y = c(0,1))
grid.points(x = vect1_relative,y = vect2_relative)
我确定有一个更直接的解决方案,我认为它与在打开视口时使用 unit()
有关,但我还没有弄清楚如何解决。
谁能告诉我如何在网格视口中使用绝对值(并定义 xlim / ylim)的示例?
一种选择是使用 dataViewport
和 native
单位。
library(grid)
d <- data.frame(x=100*rnorm(10),y=1e4*rnorm(10))
grid.newpage()
pushViewport(viewport(width=0.8,height=0.8))
grid.rect(gp=gpar(fill="grey98"))
vp <- dataViewport(xData = d$x, yData = d$y)
grid.points(d$x, d$y, default.units = "native", vp=vp,
pch=19, size = unit(0.2,"char"))
在网格包中,默认情况下,新视口中的 x 和 y 位置范围介于 0 和 1 之间(相对于视口的宽度/高度)。 为了绘制值,我必须将值转换为 0 到 1 之间的范围:
library(grid)
vect1 <- rnorm(20)
vect1_relative <- vect1-min(vect1)
vect1_relative <- vect1_relative/max(vect1_relative)
vect2 <- rnorm(20)
vect2_relative <- vect2-min(vect2)
vect2_relative <- vect2_relative/max(vect2_relative)
pushViewport(viewport())
grid.lines(x = c(0,1),y = c(0,1))
grid.points(x = vect1_relative,y = vect2_relative)
我确定有一个更直接的解决方案,我认为它与在打开视口时使用 unit()
有关,但我还没有弄清楚如何解决。
谁能告诉我如何在网格视口中使用绝对值(并定义 xlim / ylim)的示例?
一种选择是使用 dataViewport
和 native
单位。
library(grid)
d <- data.frame(x=100*rnorm(10),y=1e4*rnorm(10))
grid.newpage()
pushViewport(viewport(width=0.8,height=0.8))
grid.rect(gp=gpar(fill="grey98"))
vp <- dataViewport(xData = d$x, yData = d$y)
grid.points(d$x, d$y, default.units = "native", vp=vp,
pch=19, size = unit(0.2,"char"))