2013-06-20 27 views
21

以下の例では、4つのグループを4つのペインにまとめてプロットしています。しかし問題は、それらが単一のグリッドに存在するように見えることです。光沢のある出力でチャートのサイズを制御することは可能ですか? (つまり、アプリケーションが実行されているときに右にスクロールバーが表示されないように)高さと幅を制御しようとしましたが、それはグリッド内の画像を制御するに過ぎません。シャイニーチャートスペース割り当て

おかげ

shinyUI(pageWithSidebar(
    headerPanel("Example"), 
    sidebarPanel( 

), 

    mainPanel(
    tabsetPanel(tabPanel("Main",plotOutput("temp")) 

    )#tabsetPanel 

)#mainPane; 

)) 



shinyServer(function(input, output) { 

    output$temp <-renderPlot({ 
    par(mfrow=c(2,2)) 
    plot(1:10) 
    plot(rnorm(10)) 
    plot(rnorm(10)) 
    plot(rnorm(10)) 
    }, height = 1000, width = 1000) 


}) 

答えて

29

plotOutputも高さと幅のパラメータを有します。幅はデフォルトで"100%"(コンテナ内の使用可能な幅の100%を意味します)に設定され、高さのデフォルトは"400px"(400ピクセル)になります。これらの値を実験して、"auto"または"1000px"のいずれかに変更してください。

renderPlotのheightとwidthパラメータは、生成されたイメージファイルのサイズをピクセル単位で制御しますが、Webページのレンダリングサイズに直接影響しません。デフォルト値は"auto"です。つまり、対応するplotOutputの幅と高さを検出して使用します。したがって、幅と高さをplotOutputに設定した後は、通常、幅と高さをrenderPlotに設定する必要はありません。

shinyUI(pageWithSidebar(
    headerPanel("Example"), 
    sidebarPanel( 

), 

    mainPanel(
    tabsetPanel(tabPanel("Main",plotOutput("temp", height = 1000, width = 1000)) 

    )#tabsetPanel 

)#mainPane; 

)) 



shinyServer(function(input, output) { 

    output$temp <-renderPlot({ 
    par(mfrow=c(2,2)) 
    plot(1:10) 
    plot(rnorm(10)) 
    plot(rnorm(10)) 
    plot(rnorm(10)) 
    }) 


}) 
+0

私は 'navbarPage'が出力を制御しているので、私は操作する' plotOutput'を持っていませんか? http://stackoverflow.com/questions/30179621/how-can-i-display-my-plot-without-toolbars-in-shiny –

+0

ありがとうジョー、オートは今うまく動作していないようです。 'plotOutput( "screenplot"、width = "100%"、height = "auto") 'を使用し、Chromeでグラフを表示しません。 「高さは、HTML/CSSで高さが計算されるため、「auto」または「100%」を使用すると一般的に期待どおりに機能しないことに注意してください。*固定高さ?ありがとう – micstr