R:网格包中的绝对坐标

tobiasegli_te

在网格包中,默认情况下,新视口中的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)?

浸礼会

一种选择是使用dataViewportnative单位。

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"))

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TOP 榜单

热门标签

归档