propiedades lineas highcharter highchart graficas dev con r highcharts shiny rcharts

lineas - rGráficos con Highcharts como aplicación brillante



highcharts statistics (2)

Tengo una aplicación brillante que consta de tres archivos. server.R, ui.R y el archivo para iniciar la aplicación con

require(shiny) require(rCharts) runApp("shinyApp")

La aplicación comienza, pero la trama no es visible. Funciona con una trama r normal y con poligrafías, pero después de intentar mucho, todavía no tengo éxito con rCharts (que incluye rHighcharts).

Estos son los archivos del último intento:

servidor.R:

library(rCharts) shinyServer(function(input, output) { output$myChart <- renderChart({ h1 <- Highcharts$new() h1$chart(type = "spline") h1$series(data = c(1, 3, 2, 4, 5), dashStyle = "longdash") h1$series(data = c(NA, 4, 1, 3, 4), dashStyle = "shortdot") h1$legend(symbolWidth = 80) return(h1) }) })

ui.R:

require(rCharts) shinyUI(pageWithSidebar( headerPanel("rCharts: Highcharts"), sidebarPanel( selectInput(inputId = "x", label = "Choose X", choices = c(''SepalLength'', ''SepalWidth'', ''PetalLength'', ''PetalWidth''), selected = "SepalLength") ), mainPanel(showOutput("myChart", "Highcharts") ) ))

Mi suposición es que el segundo argumento de "showOutput" podría estar equivocado, pero no encontré nada.


Hay dos formas de hacer que esto funcione. La primera forma es agregar h1$set(dom = "myChart") en su server.R . Esto es necesario para que tanto server.R como ui.R se comuniquen acerca del gráfico correcto. La alternativa es usar renderChart2 , que está en la rama dev de rCharts , que es una versión actualizada de renderChart y eventualmente lo reemplazará. Adjunto el código completo para el beneficio de todos.

require(rCharts) require(shiny) runApp(list( ui = pageWithSidebar( headerPanel("rCharts: Highcharts"), sidebarPanel(selectInput( inputId = "x", label = "Choose X", choices = c(''SepalLength'', ''SepalWidth'', ''PetalLength'', ''PetalWidth''), selected = "SepalLength" )), mainPanel(showOutput("myChart", "Highcharts")) ), server = function(input, output){ output$myChart <- renderChart2({ h1 <- Highcharts$new() h1$chart(type = "spline") h1$series(data = c(1, 3, 2, 4, 5), dashStyle = "longdash") h1$series(data = c(NA, 4, 1, 3, 4), dashStyle = "shortdot") h1$legend(symbolWidth = 80) return(h1) }) } ))


Probablemente esto se deba al hecho de que rcharts está basado en javascript rcharts existen fuertes incompatibilidades entre los nombres de las variables R y los nombres de las variables permitidas por javascript . Específicamente con respecto a los puntos . en nombres

Intente ejecutar la siguiente función en los nombres de data.frame y cualquier columna de character :

noDot <- function(x) gsub("//.", "_", gsub("^//.", "", x) )

es decir:

names(df) <- noDot(names(df)) # and char.cols <- sapply(df, function(x) any(is(x)=="character")) df[, char.cols] <- sapply(df[, char.cols], noDot) # note that this has not been tested