[英]Shiny Reactive Plot Fail
我要根據用戶選擇的犯罪類型和年份顯示一系列(超過100個)情節(反應性)
這些地塊已經以這種格式命名:在2001年的Assaults中為“ CrimeDataA01”,在2002年的Murder中為“ CrimeDataM02”,依此類推。
已經定義了繪圖,並將其代碼粘貼到服務器文件中的shinyServer(function(input,output))之前。
我試圖讓Shiny打印出正確的圖,具體取決於用戶選擇的犯罪類型和年份。 這是我的server.r代碼:
shinyServer(function(input, output) {
crime2 <- switch(input$select,
"Assault" = "A",
"Burglary" = "B",
"Car Theft" = "MT",
"Grand Larceny" = "G",
"Murder" = "M",
"Rape" = "R",
"Robbery" = "RO")
year2 <- switch(input$Slider,
"2000" = "00",
"2001" = "01",
"2002" = "02",
"2003" = "03",
"2004" = "04",
"2005" = "05",
"2006" = "06",
"2007" = "07",
"2008" = "08",
"2009" = "09",
"2010" = "10",
"2011" = "11",
"2012" = "12",
"2013" = "13",
"2014" = "14",
"2015" = "15")
output$plot <- plot(paste0("CrimeData", crime2, year2))
})
})
這是我的ui.R代碼:
library(shiny)
shinyUI(fluidPage(
sidebarLayout( position = "right",
sidebarPanel(
selectInput("select", label = h3("Select Crime"),
choices = list("Assault" = 1, "Burglary" = 2, "Car Theft" = 3, "Grand Larceny" = 4, "Murder" = 5, "Rape" = 6, "Robbery" = 7))
),
mainPanel(
textOutput("text1"),
h1("NYC Crime Over Time", align = "center"),
sliderInput("Slider", "Year", 2000, 2015, 2000),
print(plot)
))))
我已經搞砸了,我不知道是什么了。 我只想調用正確的圖並顯示它
如果我正確地回答了這個問題,那么您正在尋找以下代碼:請注意,我僅定義了CrimeDataA00和CrimeDataA01,您似乎已在本地保存了其他圖。 除了Brandon建議查看renderImage()或renderPlot()的建議之外,您還應該熟悉reacts()和get()。 祝好運!
plot(1:9)
CrimeDataA00 <- recordPlot()
server <- shinyServer(function(input, output) {
crime2 <- reactive({
switch(input$select,
"Assault" = "A",
"Burglary" = "B",
"Car Theft" = "MT",
"Grand Larceny" = "G",
"Murder" = "M",
"Rape" = "R",
"Robbery" = "RO")
})
year2 <- reactive({
switch(as.character(input$Slider),
"2000" = "00",
"2001" = "01",
"2002" = "02",
"2003" = "03",
"2004" = "04",
"2005" = "05",
"2006" = "06",
"2007" = "07",
"2008" = "08",
"2009" = "09",
"2010" = "10",
"2011" = "11",
"2012" = "12",
"2013" = "13",
"2014" = "14",
"2015" = "15")
})
output$plot <- renderPlot({
get(paste0("CrimeData", crime2(), year2()))
})
})
library(shiny)
ui <- shinyUI(fluidPage(
sidebarLayout( position = "right",
sidebarPanel(
selectInput("select", label = h3("Select Crime"),
choices = list("Assault" = "Assault", "Burglary" = "Burglary", "Burglary" = "Burglary", "Grand Larceny" = "Grand Larceny", "Murder" = "Murder", "Rape" = "Rape", "Robbery" = "Robbery"))
),
mainPanel(
textOutput("text1"),
h1("NYC Crime Over Time", align = "center"),
sliderInput("Slider", "Year", 2000, 2015, 2000),
plotOutput("plot")
))))
shinyApp(ui, server)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.