Flexdashboard Shiny 编织后输出未铺满整页问题咨询
问题解决方法
1. 修正YAML配置
你当前的YAML头缺少Shiny运行时声明和全局绘图适配参数,调整为以下内容即可:
--- title: "By sachin" output: flexdashboard::flex_dashboard: orientation: columns vertical_layout: fill runtime: shiny ---
runtime: shiny是第三页的交互式Shiny应用能正常铺满页面的必要条件,没有这个参数时Shiny应用会以固定尺寸的嵌入式组件渲染,无法适配页面宽高。
2. 统一配置绘图代码块参数
所有包含ggplot输出、Shiny应用的代码块,都添加out.width="100%"和高度参数,示例如下:
- 静态ggplot绘图的代码块开头修改为:
{r out.width='100%', fig.height=6} - 第三页Shiny应用的代码块开头修改为:
同时修改Shiny的{r out.width='100%', height=800}plotOutput配置,添加高度适配:plotOutput("plot", height = "70vh")
3. 修正列宽设置逻辑
{data-width=xxx}中的数值是列宽比例权重,不是固定像素值:
- 如果你需要单页面单列铺满,直接设置
{data-width=100}即可 - 两列均分的话设置两个
{data-width=50}即可,不需要用像素数值配置
4. 冗余代码优化
把所有包加载逻辑统一放到最开头的setup代码块中,不需要每个图表都重复加载,避免不必要的渲染冲突:
library(flexdashboard) library(dplyr) library(tidyverse) library(ggplot2) library(plotly) library(jtools) library(shiny)
内容的提问来源于stack exchange,提问作者Sachin
相关产品推荐
相关产品推荐

