R 防止用户界面中出现占位符空间
我正在编写一个闪亮的应用程序,其中有一个复选框组作为输入和输出,将有相同数量的类似于图的选项R 防止用户界面中出现占位符空间,r,shiny,R,Shiny,我正在编写一个闪亮的应用程序,其中有一个复选框组作为输入和输出,将有相同数量的类似于图的选项 勾选选项1将显示绘图1 勾选选项2将显示绘图2 勾选选项3将显示绘图3 但当我只勾选选项2和3时,输出区域将留有一些空间,勾选选项1时,将显示绘图1。还有这个我不想要的白色区域。其余的地块应该被取消 如何防止输出区域中出现空白? 我想我必须在ui主面板区域进行一些编码,但我没有发现任何东西。 所以我希望你能帮我解决这个问题。非常感谢 我的app.R代码示例: fluidPage( si
- 勾选选项1将显示绘图1
- 勾选选项2将显示绘图2
- 勾选选项3将显示绘图3
fluidPage(
sidebarLayout(
sidebarPanel(
# Group of checkboxes
checkboxGroupInput("checkGroup", label = h3("Checkbox group"),
choices = list("Choice 1" = 1, "Choice 2" = 2, "Choice 3" = 3),
selected = 1)
),
mainPanel(
# Must I do here my codeing to prevent the (white) placeholder for the not shown plot?
plotOutput("plot_Choice1"),
plotOutput("plot_Choice2"),
plotOutput("plot_Choice3")
)
)
)
server <- function(input, output) {
# Rendering the first plot
output$plot_Choice1=renderPlot({
req(input$checkGroup)
if (any(input$checkGroup == 1)) {
plot(1:10,main="Plot for choice 1")
}
})
# Rendering the second plot
output$plot_Choice2=renderPlot({
req(input$checkGroup)
if (any(input$checkGroup == 2)) {
plot(10:20,main="Plot for choice 2")
}
})
# Rendering the third plot
output$plot_Choice3=renderPlot({
req(input$checkGroup)
if (any(input$checkGroup == 3)) {
plot(20:30,main="Plot for choice 3")
}
})
}
# Create Shiny app ----
shinyApp(ui = ui, server = server)
fluidPage(
侧边栏布局(
侧栏面板(
#复选框组
checkboxGroupInput(“checkGroup”,标签=h3(“Checkbox group”),
选项=列表(“选项1”=1,“选项2”=2,“选项3”=3),
所选参数=1)
),
主面板(
#我必须在这里编码以防止未显示绘图的(白色)占位符吗?
绘图输出(“绘图选项1”),
绘图输出(“绘图选择2”),
绘图输出(“绘图选择3”)
)
)
)
服务器您可以使用conditionalPanel
来“隐藏”输出(注意,条件不是R代码):
ui
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
# Group of checkboxes
checkboxGroupInput("checkGroup", label = h3("Checkbox group"),
choices = list("Choice 1" = 1, "Choice 2" = 2, "Choice 3" = 3),
selected = 1)
),
mainPanel(
conditionalPanel("input.checkGroup.includes('1')", plotOutput("plot_Choice1")),
conditionalPanel("input.checkGroup.includes('2')", plotOutput("plot_Choice2")),
conditionalPanel("input.checkGroup.includes('3')", plotOutput("plot_Choice3"))
)
)
)
server <- function(input, output) {
# Rendering the first plot
output$plot_Choice1=renderPlot({
req(input$checkGroup)
if (any(input$checkGroup == "1")) {
plot(1:10, main = "Plot for choice 1")
}
})
# Rendering the second plot
output$plot_Choice2=renderPlot({
req(input$checkGroup)
if (any(input$checkGroup == "2")) {
plot(10:20, main = "Plot for choice 2")
}
})
# Rendering the third plot
output$plot_Choice3=renderPlot({
req(input$checkGroup)
if (any(input$checkGroup == "3")) {
plot(20:30, main = "Plot for choice 3")
}
})
}
# Create Shiny app ----
shinyApp(ui = ui, server = server)