R - gridExtra - 某些ggplot()层不能扩展

时间:2017-06-14 13:58:15

标签: r ggplot2 gridextra

我有一堆ggplot()个有两层:geom_boxplotgeom_points

当我使用gridExtra在网格中插入这些内容时,geom_boxplot会缩放,但geom_point不会缩放,这会导致丑陋(请参阅下面的图片)。

我该如何解决这个问题?

可重现的代码:

library(ggplot2)
library(gridExtra)
datablock <- data.frame(date = rep(1:10, 3)
              , value = rnorm(30, 3,2)
              , name = c(rep("one",10), rep("two",10), rep("three",10)))
currentValues <- data.frame(date = rep(1,3)
              , value = c(3, 2.3, 3.5)
              , name = c("one","two", "three"))
boxplotFg <-   
  ggplot(datablock, aes(x = name, y = value)) + geom_boxplot(outlier.shape=NA) +
  geom_point(data=currentValues, aes(x=name, y=value, color = value), size = 8)


 grid.arrange(boxplotFg,boxplotFg, boxplotFg, boxplotFg,boxplotFg, boxplotFg, ncol = 3)

输出

enter image description here

我当然可以将geom_point的大小减小到4或5 ......但我觉得改变绝对大小不是正确的方法,因为它只能解决问题。

1 个答案:

答案 0 :(得分:0)

也许最简单的解决方案是根据网格列的数量来缩放点大小。

nc = 3
boxplotFg <-   
  ggplot(datablock, aes(x = name, y = value)) 
    geom_boxplot(outlier.shape=NA) +
    geom_point(data=currentValues, aes(x=name, y=value, color = value), 
      size = 8/nc)
grid.arrange(boxplotFg, boxplotFg, boxplotFg, boxplotFg,boxplotFg, boxplotFg, 
  ncol = nc)

enter image description here

相同的代码但nc=2会产生

enter image description here