【问题标题】:How to draw a box/border around plots arranged side by side using grid.arrange in R如何使用 R 中的 grid.arrange 在并排排列的地块周围绘制框/边框
【发布时间】:2014-09-02 06:00:46
【问题描述】:

我使用 ggplot 创建了两个图,如下所示:

library(ggplot2)
library(gridExtra)
g1 <- ggplot(iris, aes(Sepal.Width, Sepal.Length)) + geom_point()
g2 <- ggplot(iris, aes(Petal.Width, Petal.Length)) + geom_point()
grid.arrange(g1, g2, ncol=2)

我想在 grid.arrange 生成的两个并排图周围绘制一个边框/框...我认为这与使用 grid.border 有关,但我不确定如何执行此操作.会感谢任何帮助吗?

【问题讨论】:

  • 欢迎来到 SO!您可能被否决了,因为发布一个带有完整的reproducible 示例以及可以通过复制粘贴运行的完整代码的问题通常是个好主意。
  • 道歉...第一次发帖。感谢编辑

标签: r ggplot2 border gridextra


【解决方案1】:

使用 ggplot 帮助页面中的示例:

 gg <- df <- data.frame(gp = factor(rep(letters[1:3], each = 10)),
                  y = rnorm(30))

 library(plyr)
 ds <- ddply(df, .(gp), summarise, mean = mean(y), sd = sd(y))
 gg2 <-ggplot(df, aes(x = gp, y = y)) +
    geom_point() +
    geom_point(data = ds, aes(y = mean),
               colour = 'red', size = 3)+theme(panel.border=element_rect(fill=NA) )
 grid.arrange(gg2,gg2, ncol=2)

或者这取决于你的意思:

 gg2 <-ggplot(df, aes(x = gp, y = y)) +
    geom_point() +
    geom_point(data = ds, aes(y = mean),
               colour = 'red', size = 3)+theme(plot.background = element_rect(size=3,linetype="solid",color="black"))
 grid.arrange(gg2,gg2, ncol=2)

如果你只想要一个边框:

grid.rect(.5,.5,width=unit(.99,"npc"), height=unit(0.99,"npc"), 
          gp=gpar(lwd=3, fill=NA, col="blue"))

【讨论】:

  • 上面的解决方案没有在两个不相关的图周围绘制边框/框?我正在寻找一个包含grid.arrange 生成的所有图的框/边框。谢谢
  • 您可能需要明确设置fill=NA,因为它可能在某些设备上默认为“白色”,从而覆盖下面的图。
  • 好点。我在一台运行早期版本 R 的机器上确实发生过这种情况,尽管现在还没有在 3.1.0 上。
猜你喜欢
  • 2015-01-10
  • 1970-01-01
  • 1970-01-01
  • 2011-01-19
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多