什么让我的小Shiny应用程序不显示我的ggplot?当我用一个使用基本绘图函数的例子替换renderPlot()中的代码时,它将汇集在一起。我在Windows Vista上使用RStudio,R v3.0.1,输出到Chrome浏览器。闪亮不显示我的ggplot因为我期望
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])
})
})
尝试包装你ggplot在'print'即'打印(ggplot(...)+ geom_point)调用' –
你应该表现出错误消息,而不是仅仅说“不起作用”。杰克是正确的,你应该围绕你的ggplot调用打印打印,但我认为你的ggplot调用还有其他问题(作用域问题)。 – GSee