RMarkdown:根据用户输入显示预先存在的图列表中的图

tnkciper  于 2023-03-15  发布在  其他
关注(0)|答案(1)|浏览(109)

首先,我创建R-Markdown文件,并列出两个简单的绘图:

title: "test"
author: "Zhaochen He"
date: "2023-03-14"
output: html_document
runtime: shiny
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(ggplot2)
plot1 = ggplot(mpg, aes(x = cyl, y = cty)) + geom_point()
plot2 = ggplot(mpg, aes(x = cyl, y = hwy)) + geom_point()      
myplots = list(plot1, plot2)

现在我试着显示1号图,效果很好,显示2号图也很好。

renderPlot({
myplots1
})


结果:x1c 0d1x
但是,如果我试图让用户选择要显示的图,它根本不起作用。创建了一个选择下拉列表,但没有显示任何图。

inputPanel(
selectInput('num', label = 'number', choices = 1:2, selected = 1)
)
renderPlot({
myplotsinput$num
})


结果:
![](https://i.stack.imgur.com/zkMfc.jpg)

请指示。
dwbf0jvd

dwbf0jvd1#

我认为selectInput()将1转换为“1”。这对我很有效:

renderPlot({
  myplots[[as.numeric(input$num)]]
})

相关问题