質問

I am trying to plot a rChart in a shiny application and run this via Rstudio server. When I run the app the shiny page gives the error: attempt to apply non-function and the RChart opens in a new browser window.

How can make the rChart appear in the shiny application?

server.R

library(shiny)
require(rCharts)

names(iris) = gsub("\\.", "", names(iris))

shinyServer(function(input, output) {

output$myChart  <- renderChart({
h1 <- hPlot(x = "Wr.Hnd", y = "NW.Hnd", data = MASS::survey, 
type = c("line", "bubble", "scatter"), group = "Clap", size = "Age")
return(h1$show(cdn = TRUE))
  })
})

ui.R

library(shiny)
require(rCharts)
shinyUI(pageWithSidebar(

headerPanel("rCharts and shiny"),

sidebarPanel(),

mainPanel(
showOutput("myChart")
  )
))

My R session info

R version 3.0.2 (2013-09-25)
Platform: x86_64-pc-linux-gnu (64-bit)

other attached packages:
[1] shiny_0.7.0     plyr_1.8        rCharts_0.3.51  devtools_1.3    ggplot2_0.9.3.1    RMySQL_0.9-3    DBI_0.2-7      
役に立ちましたか?

解決 2

You are missing the name of the library in showOutput. If you install the dev branch of rCharts, then you can run the following code

library(shiny)
# devtools::install_github("rCharts", "ramnathv", ref = "dev")
library(rCharts)
runApp(list(
  ui = pageWithSidebar(
    headerPanel("rCharts and shiny"),
    sidebarPanel(

    ),
    mainPanel(
      showOutput("myChart", "highcharts")
  )),
  server = function(input, output, session){
    output$myChart  <- renderChart2({
      h1 <- hPlot(x = "Wr.Hnd", y = "NW.Hnd", data = MASS::survey, 
        type = c("line", "bubble", "scatter"), group = "Clap", 
        size = "Age"
      )
      return(h1)
    })
  }
))

他のヒント

You have to specify which library need to import depending on which kind of plot you are using.

Here is a list of all the available libraries from the description of rCharts package.

datatables
dimple
highcharts
leaflet
morris
nvd3
polycharts
rickshaw
vega
xcharts

Here is the demo code on rcharts website and I modified it to plot hplot.

ui.R

require(rCharts)
shinyUI(pageWithSidebar(
  headerPanel("rCharts: Interactive Charts from R using highcharts"),

  sidebarPanel(
    selectInput(inputId = "x",
                label = "Choose X",
                choices = c('SepalLength', 'SepalWidth', 'PetalLength', 'PetalWidth'),
                selected = "SepalLength"),
    selectInput(inputId = "y",
                label = "Choose Y",
                choices = c('SepalLength', 'SepalWidth', 'PetalLength', 'PetalWidth'),
                selected = "SepalWidth")
  ),
  mainPanel(
    showOutput("myChart", "highcharts")
  )
))

server.R

require(rCharts)
shinyServer(function(input, output) {
  output$myChart <- renderChart({
    names(iris) = gsub("\\.", "", names(iris))
    # HPLOT
    p1 <- hPlot(input$x, input$y, data = iris, type = c("line", "bubble", "scatter"), group = "Species", size = 1)
    # RPLOT
    #p1 <- rPlot(input$x, input$y, data = iris, color = "Species", facet = "Species", type = 'point')
    p1$addParams(dom = 'myChart')
    return(p1)
  })
})

enter image description here

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top