我已经指定了我的图表,其列宽为 5
. My problem 相反,我的绘图显示的列宽更接近 2
,绘图之间有空格填充 .
这是我的问题的MWE
library(tidyverse)
library(shiny)
library(shinydashboard)
##----------DATA------------##
set.seed(1)
df <- map(1:4, ~data.frame(x=1:10, y=(1:10)+runif(.x), z=.x))
stat <- data.frame(A=runif(4)+2, B=runif(4)+2, depth=c(10,20,30,40))
##----------END DATA------------##
## UI
ui <- dashboardPage(
dashboardHeader(title = "Test"),
dashboardSidebar(
sidebarMenu(
menuItem("Dashboard", tabName = "dashboard", icon = icon("dashboard"))
)
),
dashboardBody(
tabItems(
# First tab content
tabItem(tabName = "dashboard",
fluidRow(
box(title = "Inputs",
solidHeader = TRUE,
collapsible = TRUE,
width = 3,
selectInput(inputId="parameter", label="Parameter", choices=c("This", "That"), selected=c("This"))
)
),
fluidRow(
column(width=5,
box(title = "Plot",
solidHeader = TRUE,
collapsible = TRUE,
plotOutput(outputId="histogram")
)
),
column(width=5,
box(title = "Summary",
plotOutput(outputId="linegraph")
)
)
)
)
) # end tabitems
) # end dashboardbody
) # end dashboardpage
## SERVER
server <- function( input, output ) {
# Reactive data
data <- reactive({ df })
stats <- reactive({ stat })
# Histogram plot
output$histogram <- renderPlot({ ggplot() +
geom_step(data=data()[[1]], aes(x=x, y=y, colour="1"), lwd=1) +
geom_step(data=data()[[2]], aes(x=x, y=y, colour="2"), lwd=1) +
geom_step(data=data()[[3]], aes(x=x, y=y, colour="3"), lwd=1) +
geom_step(data=data()[[4]], aes(x=x, y=y, colour="4"), lwd=1) +
scale_color_manual(values=c("1"="cyan","2"="blue","3"="green","4"="red")) +
theme_classic() +
guides(color=guide_legend(title="")) +
theme(legend.position = "bottom", legend.direction = "horizontal") +
theme(text = element_text(size=20)) +
xlab("") + ylab("") })
# Linegraph plot
output$linegraph <- renderPlot({ ggplot() +
geom_point(data=stats(), aes(x=depth, y=A, color="A"), size=5) +
geom_line(data=stats(), aes(x=depth, y=A, color="A"), lwd=1) +
geom_point(data=stats(), aes(x=depth, y=B, color="B"), size=5) +
geom_line(data=stats(), aes(x=depth, y=B, color="B"), lwd=1) +
geom_hline(yintercept=0, lty=2, lwd=1, color="red") +
scale_color_manual(values=c("A"="black","B"="grey")) +
theme_classic() +
guides(color=guide_legend(title="")) +
theme(legend.position = "bottom", legend.direction = "horizontal") +
theme(text = element_text(size=20)) +
xlab("") + ylab("") })
}
shinyApp( ui = ui, server = server )
我感谢任何帮助!
1 回答
box()
的默认宽度为6(=总宽度的1/2) . 但是,您的盒子位于宽度为5的列内 . 因此,您的盒子总大小为5 * 0.5 = 2.5 .如果要获得列的整个宽度,只需在框内设置
width=12
即可 .这是你的固定MWE(并用
ggplot
和purrr
替换tidyverse
,因为我不想污染我的R ......):