我正在處理一個Shiny應用程序。其中一部分涉及使用ggplot2生成一個圖。有相當多的變量,所以我希望它能夠非常廣泛地滾動以便可讀。最初我試圖用plotOutput("plot1", width = X)
(其中x是某個數字)來調整尺寸,如果我確切知道我的plot1
將會是什麼樣子,我可以使其工作。事情是,最終會有過濾器會影響plot1
有多大,所以我不能預先定義它。閃亮/ ggplot2中的變量大小
我想要做的是以某種方式告訴R說:「用ggplot2製作一個條形圖,其中條形圖全部爲x個單位,並使圖形儘可能大。」
這裏是server.r產生積代碼:
output$plot1 <- renderPlot({
ggplot(data = dat, aes(x = foo)) + geom_bar(stat="bin")
+facet_grid(~bar, scales = "free_x", space = "free")
,然後在ui.r我把它像我上面那樣:
plotOutput("plot1", width = X)
具體發生了什麼事是, 'facet_grid'將劇情分成不同的組,用戶可以選擇決定哪些組/多少組。
我想到的一種可能的解決方法將涉及以某種方式嘗試計算將出現的小節數量,然後提出函數來計算X有多大。在一個常規的R會話中,這將非常容易,但在Shiny中,我需要能夠在server.r中計算一個變量並在ui.r中使用它,並且我對如何實現這一點感到困惑。
編輯:我可能已經找出了一個解決方法,而不是做一個情節,將劇情轉換爲圖像並顯示圖像。現在,我只需要弄清楚如何使圖像成爲全尺寸,而不是將它縮放以適應窗口。任何意見,將不勝感激。
我得到的錯誤:錯誤標記(「div」,列表(...)):找不到對象'plot1'。另外,當你引用ui.R中的變量「testUI」時,你的代碼至少有一個錯誤,並且你在server.R中使用newUI。你能確認你的代碼是正確的嗎?我也嘗試訪問plotOutput代碼上的輸出$ plot1,但後來我得到錯誤:不允許從shinyoutput對象的eading對象。在此先感謝 – Picarus 2015-05-01 04:13:30
是的,我的代碼工作,但它有點屠殺,因爲我剛剛輸入一些骨架代碼,以節省時間,並沒有打擾仔細檢查的東西名稱。我編輯了我的答案,所以你可以看到正確的代碼(無論如何,相關的東西) – goodtimeslim 2015-05-01 05:37:49
謝謝。我猜報價在哪裏... – Picarus 2015-05-01 05:40:06