gpt4 book ai didi

r - 如何与 Shiny 和 gridExtra 一起工作?

转载 作者:行者123 更新时间:2023-12-03 23:16:06 28 4
gpt4 key购买 nike

我正在使用 R Shiny 想在 gridExtra 的帮助下并排放置几个 ggplotly 图。

一个 plotly (没有 gridExtra)工作得很好:

library(shiny)
library(plotly)

u <- fluidPage(plotlyOutput(outputId = "myplots"))

s <- function(input, output) {
pt1 <- reactive({
ggplotly(qplot(42))
})

output$myplots <- renderPlotly({
pt1()
})
}

shinyApp(u, s)

现在,当我尝试通过 gridExtra 再添加一个图时,它拒绝工作:
library(shiny)
library(plotly)
library(gridExtra)

u <- fluidPage(plotlyOutput(
outputId = "myplots"
))

s <- function(input, output){
pt1 <- reactive({
ggplotly(qplot(42))
})

pt2 <- reactive({
ggplotly(qplot(57))
})

output$myplots <- renderPlotly({
grid.arrange(pt1(), pt2(),
widths = c(1, 1),
ncol = 2)
})
}

shinyApp(u, s)

给我

Error in gList: only 'grobs' allowed in "gList"

最佳答案

而不是使用 grid.arrange将许多图传递给单个 plotlyOutput ,最好将您的ui设置为接受多个绘图,然后单独传递它们。例如,您的用户界面和服务器可能如下所示

请注意,像这样定义列使用 Bootstrap 主题,这意味着宽度需要增加到 12。这就是为什么我将每一列定义为宽度为 6 - 每列自然会填满页面的一半

library(shiny)
library(plotly)
library(gridExtra)

u <- fluidPage(
fluidRow(
column(6,
plotlyOutput("pt1")),
column(6,
plotlyOutput("pt2"))
)
)

s <- function(input, output){
output$pt1 <- renderPlotly({
ggplotly(qplot(42))
})

output$pt2 <- renderPlotly({
ggplotly(qplot(57))
})

}

shinyApp(u, s)

关于r - 如何与 Shiny 和 gridExtra 一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50579412/

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