Cambia automáticamente el tamaño de rChart en brillante
shiny rcharts (2)
Estoy usando highcharts
y agregando código HTML justo después de que la función showOutput
funcionó para mí.
#ui.R.
require(rCharts)
shinyUI(shinyUI(fluidPage(
titlePanel("title panel"),
sidebarLayout(
sidebarPanel("sidebar panel"),
mainPanel("main panel",
showOutput("chart1", ''highcharts''),
HTML(''<style>.rChart {width: 100%; height: 600px}</style>''))
)
)
))
Espero que esto ayude...
¿Cómo puedo cambiar automáticamente el tamaño de un gráfico de rChart en brillante? Me gustaría ajustar la trama a la pantalla del usuario, como se hace para trazados regulares con renderPlot. Aquí hay un ejemplo mínimo:
#Server.R
require(rCharts)
shinyServer(function(input, output) {
output$chart1 <- renderChart2({
r1 <- rPlot(mpg ~ wt | am + vs, data = mtcars, type = "point", color = "gear")
return(r1)
})
})
#ui.R.
require(rCharts)
options(RCHART_LIB = ''polycharts'')
shinyUI(shinyUI(fluidPage(
titlePanel("title panel"),
sidebarLayout(
sidebarPanel("sidebar panel"),
mainPanel("main panel",
chartOutput("chart1", ''polycharts''))
)
)
))
Intenté agregar:
w <- session$clientData$output_chart1_width
r1$set(width = w)
Pero no funciona.
Casi había llegado: el chartOutput de chartOutput
no pasa su tamaño, por lo que la solución es usar un objeto plotOutput
para hacer esto.
Aquí hay una solución que funciona para mí:
#server.R
require(rCharts)
shinyServer(function(input, output, session) {
output$chart1 <- renderChart2({
r1 <- rPlot(mpg ~ wt | am + vs, data = mtcars, type = "point", color = "gear")
r1$set(width = session$clientData$output_plot1_width)
return(r1)
})
})
#ui.R
require(rCharts)
options(RCHART_LIB = ''polycharts'')
shinyUI(shinyUI(fluidPage(
titlePanel("title panel"),
sidebarLayout(
sidebarPanel("sidebar panel"),
mainPanel("main panel",
plotOutput("plot1", height = "1px"),
chartOutput("chart1", ''polycharts'')
)
)
)
))
Nota: aquí hay otro ejemplo que escribí con un gráfico de tipo nvd3: https://gist.github.com/nassimhaddad/3057e9ac687591fa5138