BKV*_*BKV 5 r ggplot2 r-markdown rnotebook ggpubr
我正在使用 R Notebooks 并且有一个包含一些用于排列直方图的代码的块。当我使用一个普通的图例时,它会产生一个额外的空图,在渲染的 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
)
```
Run Code Online (Sandbox Code Playgroud)
编辑:如果您将下面的第二个块作为 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"))
Run Code Online (Sandbox Code Playgroud)
如果我将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
Run Code Online (Sandbox Code Playgroud)
不知道为什么。对我来说非常不满意,但它似乎有效。
| 归档时间: |
|
| 查看次数: |
1479 次 |
| 最近记录: |