Пробелы в рендеринге вывода на ShinyDashboard - PullRequest
0 голосов
/ 24 декабря 2018

Я создаю таблицу с использованием renderTable и графика (графика) для размещения в ShinyDashboard.Существует пробел, который окружает данные таблицы, от которых я пытаюсь избавиться.Однако вокруг графика нет пробелов.

  1. Как удалить пробелы, окружающие стол, который я добавил на свою блестящую панель инструментов.

  2. Как выровнять заголовок таблицы "Набор персонала" по центру?

Я знаю, что есть некоторые решения HTML, но яя не знаком с этими кодами и буду рад, если кто-нибудь сможет объяснить.

Вот мои коды:

Коды сервера

    output$recruit_stats <- renderTable(recruit_stats, bordered = TRUE, colnames = TRUE)

  output$Recruitment_bar_plot <- renderPlotly({
    Recruitment_bar<-Recruitment_bar[(Recruitment_bar$hospital!="H"),];

    R01 <- ggplot()+
      geom_bar(data=Recruitment_bar,aes(x=hospital,y=count),stat = "identity", fill="navyblue")+ 
      ylim(0,1200) + 
      geom_text(data=Recruitment_bar,aes(x=hospital,y=count*1.05,label=paste(count)),size=2.5, vjust=-1.0) +
      theme(panel.background = element_blank(), 
            axis.text = element_text(size = 7),
            axis.title = element_text(size=7),
            axis.line = element_line(colour = "black", size = 0.5, linetype = "solid"), 
            plot.title = element_text(size=8, face="bold", hjust=0.5), 
            legend.position = "none", legend.text = element_text(size=6)) +
      labs(fill="") + guides(fill = guide_legend(reverse=TRUE))+
      ylab("No. Recruited") + ggtitle("No. of Patients Recruited (Jan 2017 to June 2018)") 


    ggplotly(R01, tooltip=c("count"));
  })

Коды UI

Recruitment<-tabItem(
  tabName = "Recruitment",
  fluidRow(
    box(
      box(title = "Recruitment", 
          status = "primary", 
          solidHeader = TRUE,column(12,tableOutput("recruit_stats"), align="c"),
          width=8,
          collapsed=TRUE)
  ),
  box(
    plotlyOutput("Recruitment_bar_plot", height = 400),
    width=5,
    status = "primary",
    solidHeader = TRUE
  )
)
)

1 Ответ

0 голосов
/ 24 декабря 2018

Я бы опустил ящики и попробовал бы сетку по столбцам.Для таблицы посмотрите учебники DT.

library(shiny)
library(shinydashboard)

dat5 <- c(rep("Female", 3376), rep("Male", 2180))
app <- shinyApp(
ui <- shinyUI(
  dashboardPage(dashboardHeader(title = "PSM"),
                dashboardSidebar(),
                dashboardBody(
                  tabItem(
                    tabName = "Recruitment",
                    fluidRow(

                        column(width=6, 
                               DT::dataTableOutput("recruit_stats")),
                        column(width=6, 
                               plotOutput("pie_chart", height = 400))

                    )
                  )
                  ))
                    ),

                      server <- shinyServer(function(input,output){  
                        output$pie_chart <- renderPlot({
                          df <- table(dat5)
                          cols <- rainbow(length(df))
                          barplot(df, col = cols)

                        })
                        output$recruit_stats <- DT::renderDataTable({
                          DT::datatable(as.data.frame(dat5), options = list(paging=TRUE, searching= TRUE ))
                        })
                           })
)

runApp(app)
...