2017-05-17 7 views
0

renderPlotexprで作成されたオブジェクトに応じて、光沢のあるプロットエリアの高さを変更できますか?R Shiny App:renderPlotからの入力によるサイズプロットエリア

ここには、のほとんどがという単純な例があります。これは、セッション特性の関数として、ウィンドウのサイズ:

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({}))、:私はrenderPlotの表情内lを作成し、表現の外サイズにプロット領域をlを使用しようとしています。この場合

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))) 
    } 
)) 

ありがとうございました!

答えて

1

あなたが動的にrenderPlotから値を転送するreactiveValuesを使用して、プロットの高さを設定するためにrenderUI/uiOutputを使用することができます。

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) 
    }) 
    } 
)) 
関連する問題