Che cosa impedisce alla mia piccola app Shiny di visualizzare il mio ggplot? Quando sostituisco il codice in renderPlot() con un esempio utilizzando la funzione di trama di base, viene fornito insieme. Sto usando RStudio, R v3.0.1 su Windows Vista, in uscita su un browser Chrome.Shiny non visualizza il mio ggplot come mi aspetterei
ui.r
library(ggplot2)
cities <- c("Anchorage","Fairbanks","Juenau","Wasilla","Homer")
years <- 2003:2013
Table <- "Capital Assets"
Account <- c("Land", "Art", "Buildings", "Equipment")
dat <- data.frame(City = sort(rep(cities, length(years))), Year = rep(years,length(cities)), Table)
sampleDat <- rbind(data.frame(dat,Acount = Account[1]), data.frame(dat, Acount = Account[2]), data.frame(dat, Acount = Account[3]), data.frame(dat, Acount = Account[4]))
finalDat <- data.frame(sampleDat, Value = runif(length(sampleDat[,1]), 1000,10000))
shinyUI(pageWithSidebar(
headerPanel("CAFR Explorer"),
selectInput("city","City", as.list(levels(finalDat$City)), selected = NULL, multiple = FALSE),
mainPanel(
h3(textOutput("caption")),
plotOutput("CAFRplot")
)))
server.r
library(shiny)
library(ggplot2)
cities <- c("Anchorage","Fairbanks","Juenau","Wasilla","Homer")
years <- 2003:2013
Table <- "Capital Assets"
Account <- c("Land", "Art", "Buildings", "Equipment")
dat <- data.frame(City = sort(rep(cities, length(years))), Year = rep(years,length(cities)), Table)
sampleDat <- rbind(data.frame(dat,Acount = Account[1]), data.frame(dat, Acount = Account[2]), data.frame(dat, Acount = Account[3]), data.frame(dat, Acount = Account[4]))
finalDat <- data.frame(sampleDat, Value = runif(length(sampleDat[,1]), 1000,10000))
shinyServer(function(input, output) {
formulaText <- reactive({
paste(input$city)
})
output$caption <- renderText({
formulaText()
})
output$CAFRplot <- renderPlot({
## this one isn't working.
ggplot(finalDat, aes(x = finalDat[which(finalDat$City == input$city),2],
y = finalDat[which(finalDat$City == input$city),5])) +
geom_point()
## this one is working
#plot(finalDat[which(finalDat$City == input$city),2], y = finalDat[which(finalDat$City == input$city),5])
})
})
tenta avvolgendo si ggplot chiamare in '' print' cioè di stampa (ggplot (...) + geom_point) ' –
si dovrebbe mostrare il messaggio di errore che stai ricevendo invece di dire "non funziona". Jake ha ragione nel ritirare la stampa sulla tua chiamata ggplot, ma penso ci sia qualcos'altro che non va nella tua chiamata ggplot (problema dell'ambito). – GSee