盖图特和桌子并排在rmarkDown

问题描述 投票:0回答:1

i是在rmarkDown中生成一个GGPLOT图和桌子。它需要工作 在HTML和PDF输出中。我找到了一种使用Inline CSS为HTML实现此目标的“骇人听闻”的方式,但是当输出为PDF时,它与图块和表不在同一行上不显示。 (部分成功)

我想知道为什么grid.Arrange方法对HTML和PDF都失败,以及如何在PDF输出中以1行将图和表获取?

这里是要演示的示例。

--- title: "test" author: "me" output: html_document: toc: true --- ```{r setup, include=FALSE} knitr::opts_chunk$set(echo = FALSE, warning=FALSE, message=FALSE) library(kableExtra) library(gridExtra) library(ggplot2) ``` ````{r} n <- 100 adf <- data.frame(X=rnorm(n),Y=rnorm(n,1), Z=rnorm(n,2)) ``` # Partial Success ```{r results='asis'} for( coln in names(adf)){ cat("\n\n## ", coln, "\n\n") coldat <- adf[[coln]] tdf <- data.frame(min=min(coldat), max=max(coldat)) p <- ggplot(data=adf,aes(x=.data[[coln]])) p <- p+geom_histogram() cat("\n<div class=\"row\">\n") cat("\n<div class=\"col-md-6\">\n") print(p) cat("\n</div>\n") t1 <- kable(tdf) %>% kable_styling() cat("\n<div class=\"col-md-6\">\n") print(t1) cat("\n</div>\n") cat("\n</div>\n") } ``` # Total Failure ```{r results='asis'} for( coln in names(adf)){ cat("\n\n## ", coln, "\n\n") coldat <- adf[[coln]] tdf <- data.frame(min=min(coldat), max=max(coldat)) p <- ggplot(data=adf,aes(x=.data[[coln]])) p <- p+geom_histogram() t1 <- kable(tdf) %>% kable_styling() grid.arrange(p, tableGrob(t1, theme=ttheme_minimal()), ncol=2) } ```

HTML输出的snippets

Snippet from partial success

Snippet from total failure 如果您不限于使用

kable
css r ggplot2 r-markdown kableextra
1个回答
0
投票
kableExtra

来创建表

flextable
。另一个选择是使用
grob
,它也由
ggplot
(请参阅
Herey)支持。
patchwork

    
	
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.