我想生成两张不同尺寸的图片,但并排展示。这可能吗?
这样可行,但它们必须具有相同的大小:
```{r two_plots_same_size_side_by_side, fig.width=5, fig.height=5}
plot(...)
plot(...)
```
这不起作用,但是因为在Markdown中,由单个换行符分隔的行显示在同一行上。
```{r normal_plot, fig.width=5, fig.height=5}
plot(...)
```
```{r tall_plot, fig.width=5, fig.height=9}
plot(...)
```
答案 0 :(得分:9)
一种选择是用R命令制作一个宽图,并给knitr
一个图表来处理,可能是这样的:
```{r fig.width=10, fig.height=9}
layout( cbind( c(0,0,1,1,1,1,1,0,0), rep(2,9) ) )
plot(...)
plot(...)
```
答案 1 :(得分:8)
另一个选项,如果您输出到HTML,则使用out.extra=
块选项,并将它们设置为块内的浮点对象。例如。
```{r fig.width=4, fig.height=6,echo=FALSE,out.extra='style="float:left"'}
plot(cars)
```{r fig.width=8, fig.height=6,echo=FALSE, out.extra='style="float:left"'}
plot(cars)
```
答案 2 :(得分:7)
你也可以使用gridExtra中的grid.arrange,它可以用于grob或ggplot对象
require(gridExtra)
pre_fig <- rasterGrob(readPNG("paper_figures/surf_0000.png"), interpolate=TRUE)
post_fig <- rasterGrob(readPNG("paper_figures/surf_0044.png"), interpolate=TRUE)
grid.arrange(pre_fig, post_fig, ncol=2)
答案 3 :(得分:6)
另一种选择是使用out.width
或out.height
的向量,如果你不介意调整图的大小,例如。
```{r out.width=c('500px', '300px'), fig.show='hold'}
boxplot(1:10)
plot(rnorm(10))
```