ggarrange with common legend在降价时生成额外的空白绘图

ggarrange with common legend在降价时生成额外的空白绘图,r,ggplot2,r-markdown,rnotebook,ggpubr,R,Ggplot2,R Markdown,Rnotebook,Ggpubr,我用的是R笔记本,有一块代码,用于排列直方图。当我使用一个普通的图例时,它会产生一个额外的空绘图,这在呈现的html文件中看起来很糟糕。这种现象消失了,没有一个共同的传说,但情节看起来很可怕,因为他们不是相同的大小。有没有办法阻止它生成额外的空图形 以及块中使用的代码 ```{r} ggarrange( gghistogram(data, title="MOTIVATION SCORES", x="MOTIVATION", y="..density..", add_density=TR

我用的是R笔记本,有一块代码,用于排列直方图。当我使用一个普通的图例时,它会产生一个额外的空绘图,这在呈现的html文件中看起来很糟糕。这种现象消失了,没有一个共同的传说,但情节看起来很可怕,因为他们不是相同的大小。有没有办法阻止它生成额外的空图形

以及块中使用的代码

 ```{r}

ggarrange(

gghistogram(data, title="MOTIVATION SCORES", x="MOTIVATION", y="..density..", 
add_density=TRUE, add = "median", rug = TRUE, bins=15, color="#69c8ECFF", 
fill="#69c8ECFF") , 


gghistogram(data, title="MOTIVATION BY AGE GROUP", x = "MOTIVATION", 
y="..density..", add_density=TRUE,
          add = "median", rug = TRUE, bins=15,
          color = "AGE_GROUP", fill = "AGE_GROUP",
          palette = c("#69c8ECFF", "#E762D7FF")
          )

, legend = "bottom" 
, common.legend = TRUE

)
```

编辑:如果将下面的第二个块作为rmarkdown文档中的代码块运行,它仍然会生成额外的空白绘图。如果手动运行第二个块的每一行(即一次一行),它只生成一个所需的绘图。我认为这仍然是一个解决方案,因为即使一次运行一个代码块,也会导致额外的空白绘图

在rnotebook中运行时,这似乎重现了问题:

p1 = ggplot(mtcars, aes(x = mpg, y = cyl)) +
    geom_point()
p2 = ggplot(mtcars, aes(x = drat, y = vs)) +
    geom_point()
ggarrange(p1, p2, ncol = 2, nrow = 1, common.legend = TRUE, legend = "bottom", labels = c("A", "B", "C"))
如果我将
ggarrange
对象指定给p,那么问题就消失了:

p1 = ggplot(mtcars, aes(x = mpg, y = cyl)) +
    geom_point()
p2 = ggplot(mtcars, aes(x = drat, y = vs)) +
    geom_point()
p = ggarrange(p1, p2, ncol = 2, nrow = 1, common.legend = TRUE, legend = "bottom", labels = c("A", "B", "C"))
p

不知道为什么。对我来说很不满意,但它似乎起作用。

而不是<代码> GGReule >您可以考虑切换到。它没有“白色页面”的问题,并且有很好的语法

library(ggplot2)
library(patchwork)

p1 <- ggplot(mtcars, aes(x=mpg,y=disp)) + geom_point() + ggtitle("plotA")
p2 <- ggplot(mtcars, aes(x=mpg,y=qsec)) + geom_point() + ggtitle("plotB")
p3 <- ggplot(mtcars, aes(x="cars", y=hp)) + geom_boxplot() + ggtitle("plotC")

#/ Lets make P1 and P2 share a column, and give P3 its own column:
p1 / p2 | p3
库(ggplot2)
图书馆(拼凑)

p1您能否共享
dput(数据)
的输出?使用mtcars数据时,我看到了同样的情况,这会更容易帮助您。如果您使用ggplot语法创建绘图,我建议使用补丁包而不是ggarrange。如果
p
位于单独的代码块中,则不会生成空白绘图