是否可以根据renderPlot
expr
中创建的某个对象更改闪亮绘图区域的高度。
这是一个简单的例子,几乎做我需要的事情。这会根据会话特征调整窗口大小:
library(shiny)
runApp(list(
ui = fluidPage(
plotOutput("plot1", height="auto")
),
server = function(input, output, session) {
output$plot1 <- renderPlot({
plot(cars)
}, height = function() {
session$clientData$output_plot1_width
})
}
))
然而,我不是根据会话特征调整绘图区域的大小,而是根据我在renderPlot
表达式(renderPlot({})
)中计算的内容来调整它的大小,如下所示: / p>
library(shiny)
runApp(list(
ui = fluidPage(
plotOutput("plot1", height="auto")
),
server = function(input, output, session) {
output$plot1 <- renderPlot({
plot(cars)
}, height = length(unique(cars$speed)))
}
))
在这种情况下,我在l
的表达式中创建renderPlot
,然后尝试使用l
来调整表达式之外的绘图区域。
感谢任何潜在客户!
答案 0 :(得分:1)
您可以使用renderUI/uiOutput
动态设置绘图的高度,使用reactiveValues
从renderPlot
转移值:
runApp(list(
ui = fluidPage(uiOutput("ui1")),
server = function(input, output, session) {
my <- reactiveValues(l = 500)
output$ui1 <- renderUI(plotOutput("plot1", height=my$l))
output$plot1 <- renderPlot({
my$l <- length(unique(cars$speed))*100
plot(cars)
})
}
))