最大化 R Shiny bs4Dash 中的绘图

2023-11-29

我在网上到处查了一下没有结果。我似乎无法让这些图在最大化盒子时将其高度和宽度最大化到整个窗口大小。这是我使用的要求bs4Dash。我在看这个帖子但提供的解决方案似乎对我不起作用。我缺少什么?

library(shiny)
library(bs4Dash)
library(circlepackeR) # devtools::install_github("jeromefroe/circlepackeR")
library(wordcloud2) # devtools::install_github("lchiffon/wordcloud2")
library(plotly)

ui <- dashboardPage(
  dashboardHeader(title = "Basic dashboard"),
  dashboardSidebar(),
  dashboardBody(
    # Boxes need to be put in a row (or column)
    fluidRow(
      box(id="histbox", 
          title = "hist box", 
          plotOutput("plot1", 
                     height = 250),
          maximizable = T),
      
      box(id = "circlebox", title="circle box", 
          circlepackeR::circlepackeROutput("circles"), maximizable = T)
      
    ),
    fluidRow(
      box(id="wordlcoudbox", 
          title = "wordcloud box", 
          wordcloud2::wordcloud2Output("cloud"), 
          maximizable = T),
      
      box(id = "plotlybox",
          title = "plotly box", 
          plotly::plotlyOutput("plotlyplot"), 
          maximizable = T))
  )
)

server <- function(input, output) {
  set.seed(122)
  histdata <- rnorm(500)
  
  output$plot1 <- renderPlot({
    data <- histdata[seq_len(10)]
    hist(data)
  })
  
  
  output$plotlyplot <- renderPlotly(
    plot1 <- plot_ly(
      type = 'scatter',
      mode = 'markers')
  )
  
  
  
  hierarchical_list <- list(name = "World",
                            children = list(
                              list(name = "North America",
                                   children = list(
                                     list(name = "United States", size = 308865000),
                                     list(name = "Mexico", size = 107550697),
                                     list(name = "Canada", size = 34033000))),
                              list(name = "South America", 
                                   children = list(
                                     list(name = "Brazil", size = 192612000),
                                     list(name = "Colombia", size = 45349000),
                                     list(name = "Argentina", size = 40134425))),
                              list(name = "Europe",  
                                   children = list(
                                     list(name = "Germany", size = 81757600),
                                     list(name = "France", size = 65447374),
                                     list(name = "United Kingdom", size = 62041708))),
                              list(name = "Africa",  
                                   children = list(
                                     list(name = "Nigeria", size = 154729000),
                                     list(name = "Ethiopia", size = 79221000),
                                     list(name = "Egypt", size = 77979000))),
                              list(name = "Asia",  
                                   children = list(
                                     list(name = "China", size = 1336335000),
                                     list(name = "India", size = 1178225000),
                                     list(name = "Indonesia", size = 231369500)))
                            )
  )
  
  output$cloud <- wordcloud2::renderWordcloud2(wordcloud2(demoFreq, 
                                                          minRotation = -pi/6, 
                                                          maxRotation = -pi/6, 
                                                          minSize = 10,
                                                          rotateRatio = 1))
  
  output$circles <- circlepackeR::renderCirclepackeR(circlepackeR(hierarchical_list))
  
}

shinyApp(ui, server)

正如 @yeahman269 提到的,@ismirsehregal 的解决方案对我不起作用。

我创建了一个不同的解决方案,该解决方案对我有用,结合了当前帖子和中的 @ismirsehregal 的解决方案this post.

重要的,我创建的解决方案是实用的,这意味着您只需将每个图插入一行到服务器中。

请在下面找到一个最低限度可重复的示例。最重要的部分是add_plot_maximize_observer功能。希望这对你有用,就像对我有用一样!

# Plot resizing example

library(shiny)
library(bs4Dash)
library(shinyjs)
library(plotly)

#' Add a box maximization observer to automatically resize a plot in that box.
#'
#' @param input The input of a shiny app session.
#' @param box_id The shiny ID of the box to observe.
#' @param plot_name The shiny ID of the plot to resize.
#' @param non_max_height The height that the graph should be when the box is
#'   not maximized. Defaults to "400px".
add_plot_maximize_observer <- function(input,
                                       box_id,
                                       plot_name,
                                       non_max_height = "400px") {
  observeEvent(input[[box_id]]$maximized, {
    plot_height <- if (input[[box_id]]$maximized) {
      "100%"
    } else {
      non_max_height
    }
    
    js_call <- sprintf(
      "
      setTimeout(() => {
        $('#%s').css('height', '%s');
      }, 300)
      $('#%s').trigger('resize');
      ",
      plot_name,
      plot_height,
      plot_name
    )
    shinyjs::runjs(js_call)
  }, ignoreInit = TRUE)
}

ui <- dashboardPage(dashboardHeader(),
                    dashboardSidebar(),
                    dashboardBody(
                      shinyjs::useShinyjs(),
                      box(
                        id = "graph_box",
                        maximizable = TRUE,
                        collapsible = FALSE,
                        width = 12,
                        plotly::plotlyOutput("mpg_wt")
                      )
                    ))

server <- function(input, output, session) {
  output$mpg_wt <- plotly::renderPlotly({
    plotly::plot_ly(
      mtcars,
      x = ~ wt,
      y = ~ mpg,
      type = "scatter",
      mode = "markers"
    )
  })
  
  add_plot_maximize_observer(input, "graph_box", "mpg_wt")
}

shinyApp(ui, server)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

最大化 R Shiny bs4Dash 中的绘图 的相关文章

  • LaTex 中与 knit 和 xtable 交叉引用的问题

    我目前正在与 R Studio 合作 使用 LaTex 中的 R knitr 生成 PDF 文档 在这些文档中 我想在文本中引用的表格中展示我的部分结果 我使用 R 中的 xtable 包生成这些表 它运行良好并为我提供了正确的表 到目前为
  • par(mfrow=c(1,2)) 不显示并排密度图[重复]

    这个问题在这里已经有答案了 par mfrow c 1 2 plot 1 12 log y plot 1 2 xaxs i 然而 当我尝试做并排密度图时 图会单独输出 load the stud recs dataset library U
  • 替换列表列表中的元素

    The applyR 中的函数是简化 for 循环以获得输出的好方法 是否有一个等效的函数可以帮助人们在替换向量的值时避免 for 循环 通过示例可以更好地理解这一点 Take this list for example x list li
  • decompose() 的周期太少[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 错误看起来像这样 decompose
  • 基于另一个数据集获取数据集的子集

    假设我有一个数据集 即 dat1 ID block plot SPID TotHeight 1 1 1 4 44 5 2 1 1 4 51 3 1 1 4 28 7 4 1 1 4 24 5 5 1 1 4 27 3 6 1 1 4 20
  • 如何在R中删除重复项

    我有一个非常大的数据集 如下所示 df lt data frame school c a a a b b c c c year c 3 3 1 4 2 4 3 1 GPA c 4 4 4 3 3 3 2 2 school year GPA
  • LDA with topicmodels,如何查看不同文档属于哪些主题?

    我正在使用 topicmodels 包中的 LDA 我已经在大约 30 000 个文档上运行它 获取了 30 个主题 并获得了主题的前 10 个单词 它们看起来非常好 但我想看看哪些文档属于哪个主题的概率最高 我该怎么做 myCorpus
  • 使用 broom 和 tidyverse 总结 r 平方游戏

    我发布了一个问题here https stackoverflow com questions 48627287 getting adjusted r squared value for each line in a geom smooth
  • 在 R 中创建一个运行计数变量?

    我有一个足球比赛结果的数据集 我希望通过创建一组类似于世界足球 Elo 公式的运行评级来学习 R 我遇到了麻烦 在 Excel 中看似简单的事情在 R 中并不完全直观 例如 4270 个观察中的前 15 个具有必要的变量 date t 1
  • 删除ggplot2中的负图区域[重复]

    这个问题在这里已经有答案了 如何删除 ggplot2 中 x 轴和 y 轴下方的绘图区域 请参见下面的示例 我尝试了几个主题元素 panel border panel margin plot margin 但没有任何运气 p lt ggpl
  • 如何从 Fortran 调用 R 函数?

    根据http gallery rcpp org articles r function from c http gallery rcpp org articles r function from c Rcpp 允许用户从 C 调用 R 函数
  • 纵向序列数据的三次样条方法?

    我有一个串行数据 格式如下 time milk Animal ID 30 25 6 1 31 27 2 1 32 24 4 1 33 17 4 1 34 33 6 1 35 25 4 1 33 29 4 2 34 25 4 2 35 24
  • 通过间接引用列来修改数据框中的某些值

    我正在整理一些数据 我们将失败的数据分类到垃圾箱中 并按批次计算每个分类箱的有限产量 我有一个描述排序箱的元表 这些行按升序测试顺序排列 一些排序标签带有非语法名称 sort tbl lt tibble tribble weight lab
  • 时间戳半小时窗口内字段的平均值

    我的数据框有列名Timestamp es看起来像 Timestamp es 2015 04 01 09 07 42 31 2015 04 01 09 08 01 29 5 2015 04 01 09 15 03 18 5 2015 04 0
  • kernlab 中 SVM 训练之外的核矩阵计算

    我正在开发一种新算法 该算法可以生成修改后的核矩阵以用于 SVM 训练 但遇到了一个奇怪的问题 出于测试目的 我比较了使用 kernelMatrix 接口和普通内核接口学习的 SVM 模型 例如 Model with kernelMatri
  • R独特的列或行与NA无可比拟

    有谁知道如果incomparables的论证unique or duplicated 曾经被实施过incomparables FALSE 也许我不明白它应该如何工作 无论如何 我正在寻找一个巧妙的解决方案 以仅保留与另一列相同的唯一列 或行
  • 使用 R 选择第一个非 NA 值

    df lt data frame ID c 1 1 1 2 3 3 3 test c NA 5 5 6 4 NA 7 3 NA 10 9 我想创建一个名为 value 的变量 它是每个单独 ID 测试的第一个非 NA 值 对于只有NA的个体
  • 朴素贝叶斯分类器仅基于先验概率做出决策

    我试图根据推文的情绪将推文分为三类 买入 持有 卖出 我正在使用 R 和包 e1071 我有两个数据框 一个训练集和一组需要预测情绪的新推文 训练集数据框 text sentiment this stock is a good buy Bu
  • 更改闪亮 R 中的默认浏览器

    我在 RStudio 中使用 01 hello 虽然在 IE 中默认打开程序时它不会显示直方图 但即使在 Chrome 中 滑块也不起作用 我无法滑动条形图并看到直方图中的变化 如何更改 R 中的默认浏览器 以便闪亮启动 Chrome 而不
  • 在 r 中的 group_by 之后建模后取消列表列的嵌套

    我想对所有组进行线性回归group by 将模型系数保存在列表列中 然后使用 unnest 扩展列表列 这里我用的是mtcars以数据集为例 注 我想用do here becausebroom tidy 不适用于所有型号 mtcars gt

随机推荐

  • Laravel 数据透视表中雄辩的 UUID

    这个问题就像这样 laravel uuid 未在查询中显示 然而 这个问题的不同之处在于该表是一个数据透视表id字段使用插入时通过 MySQL 触发器生成的 UUID 我不想为该数据透视表创建另一个模型来为其提供针对类似问题答案的解决方案
  • 结构模式匹配 Python - 匹配集合 / Frozenset

    我一直在尝试 Python 3 10 中的结构模式匹配 但不知道如何让它匹配一组 例如我尝试过 a 1 2 3 match a case set 1 2 3 print matched 我尝试过 a 1 2 3 match a case s
  • Cloud Firestore 不等式运算符异常抖动

    当我在我的 flutter 应用程序中使用 cloud firestore 时 发生了奇怪的异常 EDITED 这是我的代码 Stream
  • Selenium2 WebDriver Ruby => 如何点击隐藏链接

    我在 Ruby 上使用 Selenium 2 WebDriver 如何使用 css 单击隐藏链接 显示 无 该链接是子菜单 当鼠标悬停在菜单上时可见 EDIT Selenium WebDriver Error NoSuchElementEr
  • 访问 Windows Media Player 库 C#

    我试图找出如何在 C 中访问 Windows Media Player 库 我浏览了网络和 SO 发现了很多关于控制 WMP 的文章 不过 我正在尝试访问其图书馆信息 IE 它的曲目名称 文件路径和元数据 是否有一个库可以实现此目的 或者至
  • 如何添加到python字典而不替换

    我当前的代码是category1 name number 但是 如果出现相同的名称 则字典中的值将被新数字替换 我该如何制作 而不是保留原始值 并添加新值 现在给键提供两个值 谢谢 您必须使字典指向列表而不是数字 例如 如果您有两个数字用于
  • Tagsinput 和 typeahead:无法读取未定义的属性“apply”

    当我尝试使用 taginput 和 typeahead 时 我不断收到此错误 html section div class example example typeahead h3 Typeahead h3 div class bs exa
  • 这个 IDisposable 实现正确吗?

    我永远无法记住实现 IDisposable 接口的所有规则 因此我尝试提出一个基类来处理所有这些并使 IDisposable 易于实现 我只是想听听您的意见 这个实现是否可以 或者您是否看到我可以改进的地方 该基类的用户应该从它派生 然后实
  • 对 Java 规范中的泛型子类型感到困惑?

    我正在阅读 java 规范https docs oracle com javase specs jls se10 html jls 4 html jls 4 10 2这句话让我很困惑 D
  • 我可以将第三方 jar 放在 karaf (任何特定文件夹)中来解决传递依赖关系吗?

    我有各种具有第三方库依赖项的自制项目 我将它们捆绑到 OSGI 容器中 但无法解决我的项目中的深层依赖关系 现在我正在寻找 karaf 文件夹 我可以在其中放置我的库 以便捆绑包可以直接访问它们而不是安装它们 更重要的是我也在使用maven
  • 如何在 MVC 3 控制器中获取动态创建的 Json 数据集?

    好的 我正在使用 MVC 3 它非常适合将 JSON 数据集反序列化为传递给我的控制器操作的强类型对象 不幸的是 我还没有找到更动态的情况的解决方案 内置的 Json 反序列化和类是否支持 未定义 属性集 例如 假设我有一些固定数据 例如姓
  • C语言中如何将字符串复制到剪贴板?

    The SetClipboardData函数需要一个HANDLE参考 我在转换字符串以供函数中使用时遇到问题 这是我的代码 char output Test HLOCAL hMem LocalAlloc LHND 1024 char cpt
  • 如何按需切换UI5内容?

  • Spring Boot Data 和 MongoDB - 过滤子文档数组查询

    我正在尝试使用 Spring 查询 Mongo 存储库并过滤数组子文档 我已经参考过如何使用mongodb过滤子文档中的数组 但想知道是否有更合适的方法或java结构化方法可以使用Spring来做到这一点 我目前正在使用速记存储库接口符号
  • 如何打开/查看设备上存储的 iOS OSLogs?

    我正在使用 Apple 创建日志os log框架 我只是制作如下日志 os log Update Lat public f Long private f RemainingTime public f log log type default
  • 在 Samsung Galaxy S 上未拨打 NEW_OUTGOING_CALL

    尝试拦截拨出电话 并找到一个运行良好的解决方案 Nexus 1 股票 Android 2 2 HTC 欲望 2 2 摩托挑战2 1 但在运行 2 1 的 Samsung Galaxy S 上却没有 有人见过这个吗
  • 一个类如何继承自己? [复制]

    这个问题在这里已经有答案了 我不明白以下代码 template
  • 如何从文件中删除单个属性(例如只读)?

    假设一个文件具有以下属性 ReadOnly Hidden Archived System 如何只删除一个属性 例如只读 如果我使用以下内容 它将删除所有属性 IO File SetAttributes File txt IO FileAtt
  • 如何从 Java 中的自定义谓词列表创建谓词?

    我对编程比较陌生 过去两天我一直想知道如何创建一个由其他谓词的自定义列表组成的谓词 所以我想出了某种解决方案 下面是一个代码片段 应该可以给您一个想法 因为我只是根据阅读各种文档来编写它 所以我有两个问题 1 这是一个好的解决方案吗 2 对
  • 最大化 R Shiny bs4Dash 中的绘图

    我在网上到处查了一下没有结果 我似乎无法让这些图在最大化盒子时将其高度和宽度最大化到整个窗口大小 这是我使用的要求bs4Dash 我在看这个帖子但提供的解决方案似乎对我不起作用 我缺少什么 library shiny library bs4