使用googleVis在本地运行时,R中没有生成图表

时间:2014-12-24 21:19:04

标签: r shiny googlevis

这些是我的UI和服务器的代码。我面临的问题是,当应用程序在本地运行时,不会生成图表。

ui.R

library(googleVis)
library(shiny)
shinyUI(fluidPage(
  titlePanel(" Tool"),
  sidebarLayout(
    sidebarPanel(
      radioButtons(inputId="choice", label="What would you like to see?", 
                   choices=c("Overall ","Individual"))
      ),
  mainPanel(
      htmlOutput("View")

    )
  )
))

server.R

library(googleVis)
require(googleVis)
shinyServer(function(input, output) {
  n = 100 
  dates = seq(Sys.Date(), by = 'day', length = n)
  x = 10 * rnorm(n)
  y = 3 * x + 1 + rnorm(n)
  label = rep(LETTERS[1:4], each=25)
  label[1] = "D"

  my.data = data.frame(Date = dates, x, y, label)
  output$view <- renderGvis({
    gvisMotionChart(my.data, idvar ='label', xvar = 'x', yvar = 'y', timevar= 'Date')
  })

}
)

1 个答案:

答案 0 :(得分:5)

看起来你在这里遇到了一些问题。首先,你应该在server.R和ui.R中打开一个闪亮的库;看起来你在server.R中复制了googleVis两次。另外我发现你把这个&#39; v&#39;在htmlOutput(&#39; view&#39;)中,但这应该匹配server.R中的输出$ view路径,该路径不是大写的。

除此之外,单选按钮似乎是多余的,或者我不理解其意图。通常使用单选按钮,以便可以将其输入提供给server.R中的反应环境以更改数据集或其他一些参数(请参阅闪亮的教程或此示例:https://github.com/rstudio/shiny-examples/blob/master/006-tabsets/server.R)。

下面的代码会产生情节,我已经离开了单选按钮,即使它们没有用处。

<强> ui.R

library(googleVis)
library(shiny)

shinyUI(fluidPage(
  titlePanel(" Tool"),
  sidebarLayout(
    sidebarPanel(
      radioButtons(inputId="choice", label="What would you like to see?", 
                   choices= c("Overall ","Individual"))
    ),
    mainPanel(
      htmlOutput("view")

    )
  )
))

<强> server.R

library(googleVis)
library(shiny)

shinyServer(function(input, output) {

  n = 100 
  dates = seq(Sys.Date(), by = 'day', length = n)
  x = 10 * rnorm(n)
  y = 3 * x + 1 + rnorm(n)
  label = rep(LETTERS[1:4], each=25)
  label[1] = "D"

  my.data = data.frame(Date = dates, x, y, label)

  output$view <- renderGvis({
    gvisMotionChart(my.data, 
                    idvar ='label', 
                    xvar = 'x', 
                    yvar = 'y', 
                    timevar= 'Date')
  })

})

确保在应用启动后将其打开到浏览器。希望有所帮助。