RStudio Shiny Conditional Plot

时间:2012-11-15 18:14:17

标签: r ggplot2 rstudio shiny

我正在尝试使用新的RStudio功能Shiny来创建一个Web应用程序,它可以绘制不同的股票。我创建了以下示例。

我想选择数据集StockMarket然后选择例如DAX,然后最终应该出现该图。

现在,如果您运行此代码,则会立即显示该图

你能帮我吗?

ui.R:
library(shiny)
library(ggplot2)

shinyUI(pageWithSidebar(

# Application title
headerPanel("Plot1"),
sidebarPanel(
selectInput("dataset", "Dataset", list("mtcars"="cars", "StockMarket"="stocks")),

conditionalPanel(
  condition = "input.dataset=='stocks'",
  uiOutput("data")
)),
mainPanel(
plotOutput('plotstock')) ))


server.R:
library(shiny)
require(ggplot2)
library(datasets)

shinyServer(function(input, output) {

output$data<- reactiveUI(function() {

selectInput("data", "Choose Dataset", colnames(EuStockMarkets))
})

output$plotstock <- reactivePlot(function() {
data<-data.frame(EuStockMarkets)
p<- ggplot(data,aes(x=seq(1,length(data[,1])),y=DAX))+geom_line(size=1)+ylab("")+opts(title="Time Series")
print(p)
 })})

2 个答案:

答案 0 :(得分:20)

reactivePlot功能中,您可以执行类似

的操作
if (is.null(input$data))
  return(NULL)

我还会在数据集选项("(Choose one)"="")中添加一个空白条目,并且还有

if (!nzchar(input$dataset))
  return(NULL)
reactivePlot中的

答案 1 :(得分:0)

还要确保检查空字符串

if (!nzchar(input$dataset) || input$dataset=='')
return(NULL)