gpt4 book ai didi

css - 具有动态高度的 Shiny renderPlot

转载 作者:行者123 更新时间:2023-11-28 13:53:28 26 4
gpt4 key购买 nike

问题我想动态更改渲染图的高度,这样如果它包含很多数据点,就会为绘图分配更多空间。然后应该简单地移动情节下方的内容。

renderPlotheight 参数可用于此目的,但随后绘图会溢出到下一个元素中,我想避免这种情况。

我可以通过使用 uiOutput 来规避这个问题,但我想知道我是否可以回退到 renderUI 来获得相同的行为?

预期结果

我希望当绘图大小发生变化时移动绘图下方的 div使用 renderUI

截图

Div 不动 Too small

溢出到 div Overflow!!代码

library(shiny)
library(ggplot2)

ui <- fluidPage(
fluidRow(
column(width = 2, sliderInput("n", "Number of Rows:", 1, 49, 10)),
column(width = 10, plotOutput("plot"))
),
fluidRow( ## the plot oevrflows into this div when the plot grows
column(width = 12, div(style = "background:red; height: 100px"))
),
fluidRow(
column(width = 10, offset = 2, uiOutput("ui"))
),
fluidRow( ## this div is properly moved down as the plot grows
column(width = 12, div(style = "background:red; height: 100px"))
)
)

server <- function(input, output, session) {
data <- reactive(data.frame(id = factor(1:input$n, 1:input$n),
y = rpois(input$n, 200)))
output$plot <- renderPlot(
qplot(id, y, geom = "col", fill = y, data = data()) +
coord_flip(), height = function() 20 * NROW(data())
)

output$ui <- renderUI(plotOutput("plot2", height = 20 * NROW(data())))

output$plot2 <- renderPlot(
qplot(id, y, geom = "col", fill = y, data = data()) +
coord_flip()
)
}


最佳答案

可以在ui部分写plotOutput("plot", height = "auto")。 plotOutput 的默认高度固定为 400 像素。通过设置 height="auto"绘图会根据内容自动调整。

关于css - 具有动态高度的 Shiny renderPlot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59213316/

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