在R markdown HTML文件中并排打印ggplot数字?

gae*_*cia 6 r ggplot2 rstudio r-markdown

我将两个带有ggplot的图打印成一个R Markdown HTML输出,但我希望它们并排出现.这可能吗?我也可以设定数字的大小吗?

到目前为止我只能一个接一个地打印出来.我也尝试过R Cookbook中的多重绘图功能,但这严重扭曲了这些情节......

谢谢!


title: "HT Chip MiSeq/HiSeq Analysis"
date: "October 1, 2015"
output: 
  html_document: 
    highlight: haddock
    theme: flatly
---


```{r plots, echo=FALSE}
    genesDetectedDensity_MiSeq <- ggplot(meta.miseq) + geom_density(aes(genesDetected, fill=column, color=seqRun), alpha=0.2) + scale_x_continuous(limits=c(0,2000), breaks=seq(0, 2000, 100)) + ggtitle("Genes Detected across cells from MiSeq Runs")
    return(genesDetectedDensity_MiSeq)

genesDetectedHistogram_MiSeq <- ggplot(meta.miseq) + geom_bar(aes(genesDetected, fill=column, color=seqRun), position="dodge", binwidth=50, alpha=0.2) + scale_x_continuous(limits=c(0,2000), breaks=seq(0, 2000, 100)) + ggtitle("Genes Detected across cells from MiSeq Runs")
return(genesDetectedHistogram_MiSeq)
```
Run Code Online (Sandbox Code Playgroud)

这产生以下结果:

在此输入图像描述

更新:根据我在下面收到的建议,我尝试使用该gridExtra库,并通过添加以下内容打印图:

grid.arrange(genesDetectedDensity_MiSeq, genesDetectedHistogram_MiSeq, ncol=2)
Run Code Online (Sandbox Code Playgroud)

这几乎可以工作,但它仍然有点混乱:

在此输入图像描述

Bg1*_*850 17

你可以在gridExtra库中使用grid.arrange()来实现这个:)

编辑:使用iris查看图片:链接

 library(gridExtra)

 plot1 <- qplot(iris$Sepal.Length)
 plot2 <- qplot(iris$Sepal.Width)

 grid.arrange(plot1, plot2, ncol=2)
                              `
Run Code Online (Sandbox Code Playgroud)


Err*_*ard 6

只要您使用标准的R Markdown html报告,您就可以使用R Markdown使用引导程序并排获得两个图形的事实.如果您有长标题,则可以使用转义字符\n对它们进行换行,如下所示:

---
title: "test"
author: "Testperson"
output:
  html_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

## R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see <http://rmarkdown.rstudio.com>.

When you click the **Knit** button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

<div class = "row">
<div class = "col-md-6">
```{r cars,  warning = FALSE, echo = FALSE, dev=c('svg')}
plot(pressure, main = paste("Lorem Ipsum ",
                        "Ipsum lorem ipsum. ",
                        "\nLorem ipsum", sep=""))
```
</div>
<div class = "col-md-6">
```{r pressure, warning = FALSE, echo=FALSE, dev=c('svg')}
plot(pressure, main = paste("Lorem Ipsum ",
                        "Ipsum lorem ipsum. ",
                        "\nLorem ipsum", sep=""))
```
</div>
</div>
Run Code Online (Sandbox Code Playgroud)

  • 太棒了+1 - 我学到了很多,谢谢。对于未来的读者来说,这些是响应式列,具体取决于视口大小。然而,在这种情况下,人物变得相当大,需要将其放大很多才能看到两个人物并排的效果。为了始终并排显示数字,没有响应列,您还可以简单地更改 div 的宽度和显示选项 &lt;div style="width:40%; display:inline-block"&gt; chunk &lt;/div&gt; (2认同)

Tje*_*ebo 6

您还可以在块选项中将 out.width 更改为 <=50%。

需要有echo = FALSE块选项!

---
title: "Side by Side"
output: html_document
---


You can also change the figure output options. 

```{r base plot, warning = FALSE, echo=FALSE, out.width="50%"}

plot(pressure, main = paste("Lorem Ipsum ",
                        "Ipsum lorem ipsum. ",
                        "\nLorem ipsum", sep=""))

plot(pressure, main = paste("Lorem Two ",
                        "Ipsum lorem ipsum. ",
                        "\nLorem ipsum", sep=""))
```

or, with ggplot objects

```{r ggplot2, warning = FALSE, echo=FALSE, out.width="50%"}
library(ggplot2)
ggplot(pressure, aes(temperature, pressure)) +
  geom_point() +
  ggtitle("plot1")

ggplot(pressure, aes(temperature, pressure)) +
  geom_point() +
  ggtitle("plot2")
```
Run Code Online (Sandbox Code Playgroud)

结果

在此输入图像描述

  • 我最终使用了“patchwork”包,因为它非常简单(尽管如果它开箱即用,你的答案会更容易)。 (2认同)