[問題] 如何在shiny app中控制ggplot facet_wrap的個別高度?

作者: emily40830 (Qiqi)   2018-06-07 01:12:34
[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
使用者(已經有用R 做過不少作品)
[問題敘述]:
最近在寫shiny app 有一個問題一直沒辦法解決
就是我利用ggplot 的facet_wrap 將每組資料 print出來
但是由於每次篩選出來的組數都不同
然而在設定圖片高度的地方好像是在ui的plotOutput就已經固定了
導致每次出來的圖總高度都會一樣
如果組數多的就會壓縮在同樣的高度裡
因此想問要如何在shiny當中使每次print出來的圖
每組的高度是固定的 組數越多圖就越長
我有在stackoverflow找到相似的問題如下
https://stackoverflow.com/questions/18683370/control-ggplot2-facet-height-independently-from-number-of-row-facets
回答者是說用knit就可以直接改fig.height
但是shiny app是用R檔寫的 好像不能用knit
所以想上來問問大家 有沒有什麼解決的方法
亦或者是改成shinydashboard之類的就有方法可以解決?
[程式範例]:
由於程式碼過長,我用截圖示意問題
這是當資料只有一組時,高度就會整個拉很長
https://imgur.com/a/Xdre2ac
多組的時候,又都會擠在一起(圖中示意的是六組)
https://imgur.com/a/EJdKNdt
[環境敘述]:
> sessionInfo()
R version 3.4.3 (2017-11-30)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: OS X El Capitan 10.11.6
Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRlapack.dylib
locale:
[1] zh_TW.UTF-8/zh_TW.UTF-8/zh_TW.UTF-8/C/zh_TW.UTF-8/zh_TW.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] lubridate_1.7.4 forcats_0.2.0 stringr_1.3.1 purrr_0.2.5 readr_1.1.1
[6] tidyr_0.8.1 tibble_1.4.2 tidyverse_1.2.1 bindrcpp_0.2.2 knitr_1.20
[11] ggplot2_2.2.1 dplyr_0.7.5 shiny_1.0.5
[關鍵字]:
shiny ggplot facet_wrap
作者: HumuHumu (呼姆呼姆)   2018-06-07 01:15:00
uiOutput+renderUI
作者: cywhale (cywhale)   2018-06-07 09:38:00
plotOutput() 可以設height 可以設計一個reactiveValues(figH=DefaultHigh), 之後這個$figH隨著你的圖數改變在plotOutput(..,height=paste0(..$figH, "px")即可

Links booklink

Contact Us: admin [ a t ] ucptt.com