我一直在浏览页面和结果页面,但似乎无法正常工作。 下面是我希望仪表板外观的粗略图。 下面的代码显示了我尝试过的几件事,希望有一些明显的我所缺少的东西。我越来越近了,但是我可以使用诸如流体列之类的方法,或者因为表1比第一个ggplot输出长的东西
dashboardBody(
column(width = 2,
fluidRow(tableOutput('ptable')),
fluidRow(tableOutput('ptable'))),
column(width = 10,
fluidRow(plotOutput("Calplot")),
fluidRow(plotOutput("CalHeat")))
fluidRow(
column(width = 2, tableOutput('ptable')),
column(width = 10, plotOutput("Calplot"))
),
fluidRow(
column(width = 2, tableOutput('ctable')),
column(width = 10, plotOutput("CalHeat"))
)
答案 0 :(得分:2)
也许您想尝试基于列的布局。可以找到很好的解释here。
本示例将column
与box
结合在一起,您可以在其中定义每个对象的宽度。
我还切换到DT
表,因为我发现它们更强大,更易于样式设置,例如options = list(scrollX = TRUE, pageLength = 12)
,它可以很好地呈现表并向表中添加滚动条。如果您删除此选项,则表格和绘图将覆盖。
library(shiny)
library(shinydashboard)
library(DT)
ui = dashboardPage(
dashboardHeader(),
dashboardSidebar(
sliderInput("obs", "Number of observations:", min = 0, max = 1000, value = 500),
sliderInput("obs1", "Number of observations:", min = 0, max = 1000, value = 500),
sliderInput("obs2", "Number of observations:", min = 0, max = 1000, value = 500)
),
dashboardBody(
column(width = 12,
box(width = 3, DT::dataTableOutput('table1'),
DT::dataTableOutput('table2')),
box(width = 9, plotOutput("plot2"),
plotOutput("plot1"))
)
)
)
server = function(input, output) {
output$table1 <- DT::renderDataTable({
datatable(mtcars, caption = "table1",
options = list(scrollX = TRUE,
pageLength = 12))
})
output$table2 <- DT::renderDataTable({
datatable(mtcars[,1:3], caption = "table2")
})
output$plot1 <- renderPlot({
plot(mtcars$mpg, mtcars$cyl, main = "plot1")
})
output$plot2 <- renderPlot( {
plot(mtcars$mpg, mtcars$cyl, main = "plot2")
})
}
shinyApp(ui, server)