问题
I'm printing two plots with ggplot into an R Markdown HTML output, but I'd like them to appear side by side. Is this possible? Could I set the size of the figures as well?
SO far I can only print them one after the other. I also tried the multiplot function from the R Cookbook, but that severely distorts the plots...
Thanks!
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)
```
This produces the following:
UPDATE: Following the suggestion I received below, I tried using the gridExtra library, and printed the plots by adding:
grid.arrange(genesDetectedDensity_MiSeq, genesDetectedHistogram_MiSeq, ncol=2)
This almost works, but it's still kind of messy:
回答1:
You can use grid.arrange() in the gridExtra library to achieve this :)
Edit : using iris see the image : link
library(gridExtra)
plot1 <- qplot(iris$Sepal.Length)
plot2 <- qplot(iris$Sepal.Width)
grid.arrange(plot1, plot2, ncol=2)
`
回答2:
As long as your using a standard R Markdown html-report you can use the fact that R Markdown uses bootstrap to get two graphs side by side. If you have long titles you can use the escape character \n to line break them, as so:
---
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>
来源:https://stackoverflow.com/questions/33181143/printing-ggplot-figures-side-by-side-in-r-markdown-html-file