flexdashboard中的ggplot图像是否可调整大小?

zqdjd7g9  于 2023-01-28  发布在  其他
关注(0)|答案(1)|浏览(124)

默认情况下,flexdashboard使用相同的预定义大小显示所有图像。
因此,我希望能够做以下两件事:
1.能够显示图像,使其占据全部可用空间(最大化),和/或
1.能够允许用户使用闪亮的滑块交互地修改图像大小。
这可能做到吗?至少这些任务中的第一项,这似乎更容易。
下面是.Rmd的代码和它现在所做的事情的截图。你会注意到图像在底部被剪切了,我不知道如何改变它的大小。

---
title: "Resizable ggplot images in flexdashboard"
output: 
  flexdashboard::flex_dashboard:
  vertical_layout: fill 
  orientation: columns
runtime: shiny
---

 ## Left column ----

This dashboard shows how you can resize ggplot images  in 'flexdashboard'.

## Right column, where the shiny sliders and image are displayed --- 

  ```{r}
library(ggplot2)
# fluidPage(  # This does not help
  fluidRow( 
    column(width=4, checkboxInput("maximize_image", "Maximize image",  T) ),
    column(width=4, sliderInput("image_width", "Image width", 2, 6, 3) ), 
    column(width=4, sliderInput("image_height", "Image height ", 2, 9, 4) )
  )
  renderPlot( 
    ggplot(pressure) + geom_point (aes(temperature,pressure))
  )
# )

 # end of .Rmd code
mlmc2os5

mlmc2os51#

下面的代码似乎可以做到这一点:

library(ggplot2)

fluidRow( 
  # column(width=4, checkboxInput("maximize_image", "Maximize image",  T) ),
  column(width=4, sliderInput("image_width", "Image width", 50, 100, 50) ), 
  column(width=4, sliderInput("image_height", "Image height ", 50, 100, 50 ) ),
)

renderUI(
  fillPage(
    div(style = paste0("width: ", input$image_width, "%;", " height: ", input$image_height, "%;"),
        renderPlot( ggplot(pressure) + geom_point (aes(temperature,pressure)) ) )
  )
)

它可能不是最好的(因为它不知道最大的 * 可见 * 空间,所以你必须手动玩滑块,以找出高度=87%是你要找的。
尽管如此,我还是很惊讶我在任何地方都找不到它,因为它看起来超级方便。

相关问题