shiny
).shiny server
).Quando surfamos na web, nos comunicamos com servidores do mundo inteiro, geralmente através do protocolo HTTP.
app.R
ou ui.R
+ server.R
.app.R
é mais simples e limitado.ui
imprime HTML e dá nomes aos inputs e outputs do shiny.server
cuida do processamento no server side.shiny
do R -> possui internamente um servidor web básico. shiny server
-> software que roda somente em Linux e permite o acesso de múltiplas aplicações simultaneamente.shiny::runGitHub('jtrecenti/cea20160329', subdir='inst/shiny-apps/helloWorld', display.mode='showcase')
shiny::runGitHub('jtrecenti/cea20160329', subdir='inst/shiny-apps/helloWorld2', display.mode='showcase')
sidebarLayout
.fluidPage
, fluidRow
, column
.shinydashboards
Acesse neste link ou rode
shiny::runGitHub('garrettgman/shinyWidgets')
xxOutput('foo', ...)
do ui.R
você pode colocar um código do tipo
output$foo <- renderXX(...)
no server.R
.ui.R
determina a localização e identificação do elementoplotOutput
e renderPlot
.dataTableOutput
e renderDataTable
.server.R
.input
.output
. Implementado através de
observers
.reactive
.Grafo de invalidação do aplicativo construído nos exemplos anteriores.
reactive
: computações pesadas ou cálculos utilizados em várias partes da
aplicação.observe
: Guardar dados internamente, arquivos de log, etc, ou widgets personalizados.isolate
: cancela a dependência de um valor reativo em um condutor ou ponto final.shiny::runGitHub('jtrecenti/cea20160329', subdir='inst/shiny-apps/mapa', display.mode='showcase')
renderUI
(geralmente menos eficiente).ggbrush <- function(data, xvar, yvar) { ui <- miniPage( gadgetTitleBar("Drag to select points"), miniContentPanel( plotOutput("plot", height = "100%", brush = "brush") ) ) server <- function(input, output, session) { output$plot <- renderPlot({ ggplot(data, aes_string(xvar, yvar)) + geom_point() }) observeEvent(input$done, { stopApp(brushedPoints(data, input$brush)) }) } runGadget(ui, server) }
library(cea20160329) library(dplyr) library(miniUI) library(shiny) library(ggplot2) ggbrush <- function(data, xvar, yvar) { ui <- miniPage( gadgetTitleBar("Drag to select points"), miniContentPanel( column(6, plotOutput("plot", height = "300px", brush = "brush")), column(6, tableOutput('tab')) ) ) server <- function(input, output, session) { output$plot <- renderPlot({ ggplot(data, aes_string(xvar, yvar)) + geom_point(alpha = .1) }) output$tab <- renderTable({ input$done isolate({ brushedPoints(data, input$brush) }) }) } shinyApp(ui, server) }
ggbrush(filter(pnud, ano == 2010), 'idhm_e', 'idhm_r')
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.