2013-10-28 1 views
6

Я пытаюсь построить rChart в блестящем приложении и запустить его через Rstudio-сервер. Когда я запускаю приложение, на блестящей странице появляется ошибка: пытается применить не-функцию, а RChart открывается в новом окне браузера.rChart открывает новое окно в блестящем приложении

Как сделать rChart появляться в блестящем приложении?

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") 
) 
)) 

Моя информация R сессия

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  

ответ

7

Вы пропускаете имя от library в showOutput. Если установить dev ветви из rCharts, то вы можете запустить следующий код

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) 
    }) 
    } 
)) 
8

Вы должны указать, какие библиотеки нужно импортировать в зависимости от того, какого типа сюжета вы используете.

Описание: list из всех доступных библиотек из описания пакета rCharts.

datatables 
dimple 
highcharts 
leaflet 
morris 
nvd3 
polycharts 
rickshaw 
vega 
xcharts 

Вот демонстрационный код на сайте rcharts, и я изменил его на график 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