Shinydashboard: проблема с высотой даже при использовании liquidRow - PullRequest
0 голосов
/ 15 сентября 2018

Мне нужно сделать очень профессиональный Shinyapp, но конец тела приложения заканчивается в середине последнего сюжета.

Я нашел этот другой вопрос, но его решение (используйте liquidRow) не работает в моем случае:

https://stackoverflow.com/questions/46259208/shiny-dashboard-mainpanel-height-issue

Что может быть не так?

Все данные воспроизводимы.

enter image description here

## app.R ##
library(shiny)
library(shinydashboard)
library(dygraphs)
library(plotly)
library(readr)


ui <- dashboardPage(
  dashboardHeader(title = "Monitoramento Banco de Dados"),         
  dashboardSidebar(
    sliderInput("DateInput", "Periodo", -30, 0, c(-15, 0), pre = "D.")
  ),
  dashboardBody(

    fluidRow(
      dygraphOutput("plot1"),
      br(),
      plotlyOutput("plot")
    )
  )
)

server <- function(input, output) {



  output$plot1 <- renderDygraph({
    lungDeaths <- cbind(ldeaths, mdeaths, fdeaths)
    dyRangeSelector(dygraph(lungDeaths, main = "Deaths from Lung Disease (UK)"), dateWindow = c("1974-01-01", "1980-01-01"))
  }) 


  sesiones_por_fuente <- reactive({


#sesiones_ga <- read_csv("www/ga-sesiones-lc-20180824.csv", skip = 0)
sesiones_ga <- read_csv("https://www.dropbox.com/s/w2ggnb0p4mz2nus/sesiones-2018.csv?dl=1", skip = 0)

    sesiones_ga <- sesiones_ga %>%
      group_by(date, sources) %>%
      summarise(sessions = sum(sessions)) %>%
      filter(sources != "spam")


  })



  m <- list(
    l = 120,
    r = 120,
    b = 100,
    t = 100,
    pad = 20
  )

  output$plot <- renderPlotly({

plot_ly(sesiones_por_fuente(), x = ~sessions, y = ~sources, type = 'bar',
        width = 1200, height = 500, orientation = 'h') %>%
  layout(title = "Sesiones por mes",
         xaxis = list(title = ""),
         yaxis = list(title = ""),
         margin = m) %>%
  layout(hovermode = 'compare',
         separators = ',')




})

}

shinyApp(ui, server)

1 Ответ

0 голосов
/ 19 сентября 2018

Так что мне пришлось проверить HTML, созданный Shiny. И это приводит к тому, что графы графически отображаются в div (создается файлом server.R), а этот div находится внутри другого div (создается ui.R).

Таким образом, если внутренний div, созданный файлом sever.R, больше, чем div, созданный файлом ui.R, который вызывает эту ошибку компоновки.

Итак, если у вас это есть на сервере. R (обратите внимание на аргумент высоты 500px в plot_ly fun ()) :

  output$plot <- renderPlotly({


sesiones_fuente <- sesiones_por_fuente() %>%
  filter(date > input$dateRange[1], date < input$dateRange[2]) %>%
  group_by(sources) %>%
  summarise(sessions = sum(sessions))

plot_ly(sesiones_fuente, x = ~sessions, y = ~sources, type = 'bar',
        width = 1200, height = 500, orientation = 'h') %>% 
      layout(title = "Sesiones por mes",
             xaxis = list(title = ""),
             yaxis = list(title = ""),
            margin = m) 


})

Вам необходимо использовать аргумент height = 500px в plotlyOutput или Fluidrow такой же высоты в ui.R:

plotlyВыход высотой 500px :

fluidRow(
            column(12, offset = 1,
                   plotlyOutput("plot_sesiones_por_mes", height = "500px"))),
            br(),

жидкостьСтрока высоты 500px :

fluidRow(style = "height:500px",
            column(12, offset = 1,
                   plotlyOutput("plot_sesiones_por_mes"))),
            br(),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...