作者emily40830 (Qiqi)
看板R_Language
标题[问题] 如何在shiny app中控制ggplot facet_wrap的个别高度?
时间Thu Jun 7 01:12:34 2018
[问题类型]:
程式谘询(我想用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
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.166.127.216
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1528305157.A.203.html
1F:→ HumuHumu: uiOutput+renderUI 06/07 01:15
2F:推 cywhale: plotOutput() 可以设height 可以设计一个reactiveValues( 06/07 09:38
3F:→ cywhale: figH=DefaultHigh), 之後这个$figH随着你的图数改变 06/07 09:41
4F:→ cywhale: 在plotOutput(..,height=paste0(..$figH, "px")即可 06/07 09:42
5F:→ cywhale: 更正一下,写在plotOuput会有奇怪的结果产生 要写在 06/07 23:41
7F:→ cywhale: 而且怪是height= myHeight_func 还不可以有()..会有error 06/07 23:43
谢谢你~目前有找到相似的解决方法了~附上连结
https://stackoverflow.com/questions/34792998/shiny-variable-height-of-renderplot
※ 编辑: emily40830 (114.36.177.247), 06/10/2018 15:19:40
是说 cywhale你贴的那个讨论串之前我也有查到过,後来发现我卡住的原因在於reactive的物件不能直接在output的其他function使用 要先将他指定给一个新的变数後才能做後续的动作~
※ 编辑: emily40830 (114.36.177.247), 06/10/2018 15:23:15