如何使用网格包绘制矩形

时间:2018-01-12 00:47:28

标签: r r-grid

我需要在图表上绘制一个矩形来突出显示不同的变化。我需要使用grid包。我尝试使用grid.rect,但它不起作用。我希望我的矩形在图片上看起来像。

在图片的左侧部分,您可以看到我的图表和图片的右侧部分,我已经添加了矩形(在Paint中),就像我想要的那样。

enter image description here

library(grid)
library(lattice)
library(sandwich)

data("Investment")
Investment <- as.data.frame(Investment)

trellis.par.set(theme = canonical.theme("postscript", color=FALSE))
grid.newpage()
pushViewport(viewport(x=0, width=.4, just="left"))
print(barchart(table(Investment$Interest)),
  newpage=FALSE)
popViewport()
pushViewport(viewport(x=.4, width=.5, just="left"))
print(xyplot(Investment ~ Price, data=Investment, 
         auto.key=list(space="right"),
         par.settings=list(superpose.symbol=list(pch=c(1, 3, 16),
                             fill="white"))),
  newpage=FALSE)

popViewport()

1 个答案:

答案 0 :(得分:3)

您尝试绘制矩形的位置并不完全清楚,但下面的代码会添加矩形以大致匹配您的图片。你可以调整位置。

使用您的代码就像使用它一样。我将首先重复您的print语句,然后添加矩形。

print(xyplot(Investment ~ Price, data=Investment, 
         auto.key=list(space="right"),
         par.settings=list(superpose.symbol=list(pch=c(1, 3, 16),
                             fill="white"))),
  newpage=FALSE)


grid.rect(x = unit(0.42, "npc"), y = unit(0.35, "npc"),
          width = unit(0.2, "npc"), height = unit(0.2, "npc"),
        gp=gpar(col="red"))

popViewport()

Added Rectangle