gpt4 book ai didi

html - Rmarkdown knitr-HTML 中与 gridExtra 一致的数字大小

转载 作者:搜寻专家 更新时间:2023-10-31 08:26:56 24 4
gpt4 key购买 nike

我正在使用 gridExtragrid.arrange() 函数绘制由 ggplot2 生成的 4 个图形。整体是使用 RMarkdown 在 RStudio 上使用 knitr 包进行 html 渲染。

简而言之:

 g1 <- ggplot(); g2 <- ggplot(); g3 <- ggplot(); g4 <- ggplot()
grid.arrange(g1,g2,g3,g4,ncol=2,nrow=2)

RMarkdown/knitr 中,我使用了这些选项:

   output: 
html_document:
keep_md: true

```r,figures, fig.align='center',fig.width=12,fig.height=10```

问题:这 4 个数字是根据需要绘制的,但在大小上明显不成比例。

经过测试的解决方案:在此 question 中提出没有太大的成功。

编辑:现在提供带有 html 输出屏幕截图的可重现示例。

```{r mtcars plots, fig.align='center',fig.width=9,fig.height=7}
library(datasets)
library(ggplot2)
library(gridExtra)
g1 <- ggplot(mtcars, aes(drat,carb*100)) + geom_point(color="blue")
g2 <- ggplot(mtcars, aes(mpg,hp)) + geom_point(color="red")
g3 <- ggplot(mtcars, aes(qsec,wt)) + geom_point(color="green")
g4 <- ggplot(mtcars, aes(carb,disp*100)) + geom_point(color="orange")+
labs(y="This is the lab for 'disp' fairly long until here")
grid.arrange(g1,g2,g3,g4,ncol=2,nrow=2,
top=textGrob("MTCARS: Everything about cars...!",
gp=gpar(fontsize=16,font=1)))
```

enter image description here

效果比真实数据稍微微妙一些。注意“绿色”和“橙色”图的对齐方式。

任何帮助将不胜感激。

最佳答案

你可以为此使用 gtable,

library(gtable)
library(grid)
pl <- lapply(list(g1,g2,g3,g4), ggplotGrob)
g12 <- cbind(pl[[1]], pl[[2]], size="first")
g12$heights <- unit.pmax(pl[[1]][["heights"]], pl[[2]][["heights"]])
g34 <- cbind(pl[[3]], pl[[4]], size="first")
g34$heights <- unit.pmax(pl[[3]][["heights"]], pl[[4]][["heights"]])
g1234 <- rbind(g12, g34, size="first")
g1234$widths <- unit.pmax(g12[["widths"]], g34[["widths"]])
grid.newpage()
grid.draw(g1234)

关于html - Rmarkdown knitr-HTML 中与 gridExtra 一致的数字大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32780320/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com