12

我想生成两个不同大小的图像,但并排显示它们。这可能吗?

这可行,但是它们必须具有相同的大小:

```{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(...)
```
4

4 回答 4

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(...)
```
于 2012-12-21T21:14:05.580 回答
9

如果要输出到 HTML,另一种选择是使用out.extra=chunk 选项,并将它们设置为块内的浮动对象。例如。

```{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)
```
于 2012-12-21T23:52:41.933 回答
7

如果您不介意调整图的大小,则另一种选择是使用向量 for out.widthor ,例如out.height

```{r out.width=c('500px', '300px'), fig.show='hold'}
boxplot(1:10)
plot(rnorm(10))
```
于 2012-12-28T03:35:27.973 回答
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)
于 2016-07-29T13:54:40.167 回答