gpt4 book ai didi

r - FluidPage 中的 tabsetPanel 不起作用

转载 作者:行者123 更新时间:2023-12-02 18:18:42 38 4
gpt4 key购买 nike

我正在尝试设置一个带有两个面板的 Shiny 视觉效果。

我还想在每个面板中使用 FluidPage 布局,其中可以有列。

我继续尝试这个。但我的代码运行不太正常。

我最终得到一个页面,其中有 2 个选项卡,但它们都不起作用。此外,这两个选项卡都没有人们期望出现的文本。

这是我 Shiny 的应用程序的屏幕截图。请注意顶部的选项卡,它们没有任何作用:

enter image description here

如何让选项卡正确交互?有没有办法拥有 2 个选项卡,并在每个选项卡中使用 FluidPage 函数创建自定义行和列?

UI.R

shinyUI(fluidPage(
titlePanel("Shiny Viz!"),

mainPanel(

tabsetPanel(
fluidRow(
column(4,
tabPanel("Controls", checkboxGroupInput("select", label="", choices = list("Age" = "Age", "Weight" = "Weight", "Circumference" = "Circumference"), inline=TRUE))),

column(4,
plotOutput("select"))
))),

tabsetPanel(
fluidRow(
column(4,
tabPanel("output_at_some_point"))))
))

SERVER.R

library(shiny)
library(ggplot2)

DF <- as.data.frame(matrix(c(1:9),ncol=3,nrow=3))
DF <- data.frame(replicate(3,1:3))
names(DF) <- c("Age", "Weight", "Circumference")

shinyServer(function(input, output) {

output$select <- renderPlot({

# modify DF
DF_with_tests_selected <- subset(DF, select = input$select)

#ggplot
p <- ggplot(DF)
p <- p + geom_segment(aes(x=1, xend=1, y=2, yend=3))

plot(p)
})
})

最佳答案

我不太确定我是否理解您期望您的应用程序是什么样子,所以我无法告诉您您的代码出了什么问题。不过,我可以回答这个问题:

Is there any way to have 2 tabs, and within each tab, use the fluidPage functions to create custom rows and columns?

是的,这是可能的,请参阅示例。请注意,我使用 fluidRow 而不是 mainPanel,但我不确定它是否有很大区别。另外,这是一个单文件的 Shiny 应用程序。我会在应用程序中截取屏幕截图,但似乎我不能。

 # UI components.
ui <- fluidPage(
titlePanel("Shiny Viz!"),

fluidRow( class= "R1",
tabsetPanel(type= "pills",

tabPanel("Controls",
fluidRow(column(4, offset=1, selectInput("X", label="x var",
choices = list("Age" = "Age", "Weight" = "Weight", "Circumference" = "Circumference"),
multiple=F) ),
column(4,selectInput("Y", label="y var",
choices = list("Age" = "Age", "Weight" = "Weight", "Circumference" = "Circumference"),
multiple=F))) ,
fluidRow(column(5, offset=1, plotOutput("plot", height = "400px") ),
column(5, class= "R2C2", helpText("This is an exemple") ) ) ),
tabPanel("output_at_some_point",
div(style = "height:800px; background-color: yellow;", "This is an example")))

), tags$head(tags$style(".R2C2{height:250px; background-color: red;}
.R1{background-color: lightgray;}"))
)



library(ggplot2)
# Create fake data
DF <- data.frame( Age = rnorm(50, 45, 20), Weight= runif(50, 50 , 200), Circumference = runif(50, 30 , 100) )

# server component
server <- function(input, output) {
output$plot <- renderPlot({
DF$X <- DF[, which(names(DF) == input$X)]
DF$Y <- DF[, which(names(DF) == input$Y)]
ggplot(DF, aes( x= X, y= Y)) + geom_point() + labs(list(x = input$X, y = input$Y))
} )
}


shinyApp(ui=ui, server=server)

关于r - FluidPage 中的 tabsetPanel 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27282751/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com