基于一个闪亮的小部件,在Rmarkdown中并排绘制2个图

时间:2015-09-18 10:31:46

标签: r ggplot2 shiny r-markdown

我有问题。我想在Rmarkdown文档中并列两个图:

```{r, echo = FALSE}
library(ggplot2)
library(shiny)
```

```{r,  echo = FALSE,fig.show='hold', out.width='50%'}
ggplot(mtcars,aes(qsec, mpg)) + 
  geom_point()
ggplot(mtcars,aes(disp, mpg)) + 
  geom_point()
```

它工作正常。但另外我想添加与这两个图有关的闪亮小部件。通过这种方式,情节不会并排显示。

```{r, echo = FALSE, fig.show='hold', out.width='50%'}
iteration <- sort(unique(mtcars$cyl))

selectInput('cyl', 'Choose number of cylinder:',
            choices = iteration,
            selected = iteration[1])
data <- reactive(subset(mtcars,cyl == input$cyl))

renderPlot(ggplot(data(),aes(qsec, mpg)) + 
  geom_point())

renderPlot(ggplot(data(),aes(disp, mpg)) + 
  geom_point()) 
```

我应该改变什么才能获得理想的效果?

感谢。

1 个答案:

答案 0 :(得分:2)

在这种情况下,您应按照shiny tutorial中的说明个性化您的布局,例如分为2列:

```{r, echo = FALSE, fig.show='hold', out.width='50%'}
iteration <- sort(unique(mtcars$cyl))

selectInput('cyl', 'Choose number of cylinder:',
            choices = iteration,
            selected = iteration[1])
data <- reactive(subset(mtcars,cyl == input$cyl))

fluidRow(
  column(6, 
    renderPlot(ggplot(data(),aes(qsec, mpg)) + 
                 geom_point())
         ),
  column(6, 
    renderPlot(ggplot(data(),aes(disp, mpg)) + 
                 geom_point()) 
         )
)
```

在这种情况下,我使用了流体等级系统,您可以更改为固定(fixedRow