R:在一个R标记文档中调用多个renderPlot

R:在一个R标记文档中调用多个renderPlot,r,shiny,r-markdown,R,Shiny,R Markdown,背景: 您可以“要求”RStudio生成一个示例R Markdown文档,其中包含以下示例代码: ## Inputs and Outputs You can embed Shiny inputs and outputs in your document. Outputs are automatically updated whenever inputs change. This demonstrates how a standard R plot can be made interacti

背景: 您可以“要求”RStudio生成一个示例R Markdown文档,其中包含以下示例代码:

## Inputs and Outputs

You can embed Shiny inputs and outputs in your document.
Outputs are automatically updated whenever inputs 
change. This demonstrates how a standard R plot can be 
made interactive by wrapping it in the Shiny 
`renderPlot` function. The `selectInput` and 
`sliderInput` functions create the input widgets used to
drive the plot.

```{r, echo=FALSE}
inputPanel(
  selectInput("n_breaks", label = "Number of bins:",
              choices = c(10, 20, 35, 50), selected = 20),

  sliderInput("bw_adjust", label = "Bandwidth adjustment:",
              min = 0.2, max = 2, value = 1, step = 0.2)
)

renderPlot({
  hist(faithful$eruptions, probability = TRUE, breaks = as.numeric(input$n_breaks),
       xlab = "Duration (minutes)", main = "Geyser eruption duration")

  dens <- density(faithful$eruptions, adjust = input$bw_adjust)
  lines(dens, col = "blue")
})
```
输入和输出 您可以在文档中嵌入闪亮的输入和输出。 输入时,输出会自动更新 改变这说明了如何使用标准R图 通过将其包装在闪亮的 `renderPlot`函数。“selectInput”和 `sliderInput`函数创建用于 驱动情节。 ```{r,echo=FALSE} 输入面板( 选择输入(“n_breaks”,label=“料仓数量:”, 选择=c(10,20,35,50),选择=20), 滑块输入(“bw_调整”,label=“带宽调整:”, 最小值=0.2,最大值=2,值=1,步长=0.2) ) 渲染图({ hist(忠实$喷发,概率=真,中断=数值(输入$n_中断), xlab=“持续时间(分钟)”,main=“间歇泉喷发持续时间”)
dens您必须为输入元素指定不同的ID,类似于:

First embedded shiny plot :

```{r}
inputPanel(
  selectInput("n_breaks", label = "Number of bins:",
              choices = c(10, 20, 35, 50), selected = 20),

  sliderInput("bw_adjust", label = "Bandwidth adjustment:",
              min = 0.2, max = 2, value = 1, step = 0.2)
)

renderPlot({
  hist(faithful$eruptions, probability = TRUE, breaks = as.numeric(input$n_breaks),
       xlab = "Duration (minutes)", main = "Geyser eruption duration")

  dens <- density(faithful$eruptions, adjust = input$bw_adjust)
  lines(dens, col = "blue")
})
```

Second embedded shiny plot :

```{r}
inputPanel(
  selectInput("n_breaks2", label = "Number of bins:",
              choices = c(10, 20, 35, 50), selected = 20),

  sliderInput("bw_adjust2", label = "Bandwidth adjustment:",
              min = 0.2, max = 2, value = 1, step = 0.2)
)

renderPlot({
  hist(faithful$eruptions, probability = TRUE, breaks = as.numeric(input$n_breaks2),
       xlab = "Duration (minutes)", main = "Geyser eruption duration")

  dens <- density(faithful$eruptions, adjust = input$bw_adjust2)
  lines(dens, col = "blue")
})
```
第一个嵌入式发光图:
```{r}
输入面板(
选择输入(“n_breaks”,label=“料仓数量:”,
选择=c(10,20,35,50),选择=20),
滑块输入(“bw_调整”,label=“带宽调整:”,
最小值=0.2,最大值=2,值=1,步长=0.2)
)
渲染图({
hist(忠实$喷发,概率=真,中断=数值(输入$n_中断),
xlab=“持续时间(分钟)”,main=“间歇泉喷发持续时间”)

dens您必须为输入元素指定不同的ID,类似于:

First embedded shiny plot :

```{r}
inputPanel(
  selectInput("n_breaks", label = "Number of bins:",
              choices = c(10, 20, 35, 50), selected = 20),

  sliderInput("bw_adjust", label = "Bandwidth adjustment:",
              min = 0.2, max = 2, value = 1, step = 0.2)
)

renderPlot({
  hist(faithful$eruptions, probability = TRUE, breaks = as.numeric(input$n_breaks),
       xlab = "Duration (minutes)", main = "Geyser eruption duration")

  dens <- density(faithful$eruptions, adjust = input$bw_adjust)
  lines(dens, col = "blue")
})
```

Second embedded shiny plot :

```{r}
inputPanel(
  selectInput("n_breaks2", label = "Number of bins:",
              choices = c(10, 20, 35, 50), selected = 20),

  sliderInput("bw_adjust2", label = "Bandwidth adjustment:",
              min = 0.2, max = 2, value = 1, step = 0.2)
)

renderPlot({
  hist(faithful$eruptions, probability = TRUE, breaks = as.numeric(input$n_breaks2),
       xlab = "Duration (minutes)", main = "Geyser eruption duration")

  dens <- density(faithful$eruptions, adjust = input$bw_adjust2)
  lines(dens, col = "blue")
})
```
第一个嵌入式发光图:
```{r}
输入面板(
选择输入(“n_breaks”,label=“料仓数量:”,
选择=c(10,20,35,50),选择=20),
滑块输入(“bw_调整”,label=“带宽调整:”,
最小值=0.2,最大值=2,值=1,步长=0.2)
)
渲染图({
hist(忠实$喷发,概率=真,中断=数值(输入$n_中断),
xlab=“持续时间(分钟)”,main=“间歇泉喷发持续时间”)

dens如中所述,小部件功能的第一个参数是小部件名称,它标识小部件。具有相同名称的多个小部件将不各自可用,这就是为什么简单地创建两个示例副本不会创建两个工作副本的原因


要使其工作,您必须在每个
inputPanel
调用中使小部件名称唯一,然后在
renderPlot
调用中使用此名称。

如中所述,小部件函数的第一个参数是小部件名称,它标识小部件。具有相同名称的多个小部件将不可用,因为这就是为什么仅仅创建示例的两个副本并不能创建两个工作副本的原因

要使其工作,必须使小部件名称在每个
inputPanel
调用中唯一,然后在
renderPlot
调用中使用此名称