强制闪亮循环渲染绘图

2023-12-01

我有一个运行模拟的闪亮应用程序。目标是以图表的形式向用户展示其间的计算步骤。

如何强制shiny更新剧情?

MWE 看起来像这样

library(shiny)

server <- function(input, output, session) {
  # base plot as a placeholder
  output$myplot <- renderPlot(plot(1:1, main = "Placeholder"))

  # wait until the button is triggered
  observeEvent(input$run, {
    print("Do some calculations in 3 steps")
    for (i in seq_len(3)) {
      print("Do some calculations")
      # ...
      x <- seq_len(i * 100)
      y <- (x + 1)^2 - 1 # this will do for now

      print("Plot the data ")

      # ISSUE HERE!
      # this should render the current step of the simulation, instead it 
      # renders only after the whole code is run (i.e., after step 3)
      output$myplot <- renderPlot(plot(x, y, main = sprintf("Round %i", i), type = "l"))

      print("Wait for 1 second for the user to appreciate the plot...")
      Sys.sleep(1)
    }
  })
}

ui <- fluidPage(
  actionButton("run", "START"),
  plotOutput("myplot")
)

shinyApp(ui = ui, server = server)

问题是,shiny 运行代码并在模拟结束时生成一个图,但是,我想在每个模拟步骤中获得一个图(至少显示一秒钟)。

非常感谢任何帮助/提示。

Appendix

我看过这个post,但用图替换文本/renderPlot不会产生正确的结果。


你可以嵌套一个observer进入一个observeEvent使其发挥作用。基于您链接的 SO 主题中 Jeff Allen 的代码。

关键部分:

observeEvent(input$run, {
    rv$i <- 0
    observe({
      isolate({
        rv$i <- rv$i + 1
      })

      if (isolate(rv$i) < maxIter){
        invalidateLater(2000, session)
      }
    })
  })

完整代码:

library(shiny)

server <- function(input, output, session) {
  rv <- reactiveValues(i = 0)
  maxIter <- 3

  output$myplot <- renderPlot( {
    if(rv$i > 0) {
      x <- seq_len(rv$i * 100)
      y <- (x + 1)^2 - 1 # this will do for now
      plot(x, y, main = sprintf("Round %i", rv$i), type = "l") 
    } else {
      plot(1:1, main = "Placeholder")
    }
  })

  observeEvent(input$run, {
    rv$i <- 0
    observe({
      isolate({
        rv$i <- rv$i + 1
      })

      if (isolate(rv$i) < maxIter){
        invalidateLater(2000, session)
      }
    })
  })

}

ui <- fluidPage(
  actionButton("run", "START"),
  plotOutput("myplot")
)

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

强制闪亮循环渲染绘图 的相关文章

  • 在 R 中使用两个 for 循环创建矩阵/数据框

    这是我在 SO 上的第一篇文章 所以请友善 我的问题与这个问题隐约相关 R中的双for循环创建矩阵 https stackoverflow com questions 44376020 double for loop in r creati
  • 不同大小组的高效递归随机抽样

    这个问题是我之前关于递归随机抽样问题的后续问题高效的递归随机采样 https stackoverflow com questions 69824065 efficient recursive random sampling 当组大小相同或每
  • R 中具有 NA 值的聚合栅格

    我在 R 中有一个分辨率为 1 公里的栅格 其 NA 值分布广泛 但位置不规则 即 包含数据的单元格不连续 并且 NA 值分散 我正在尝试使用用户定义的平均圆角函数 包括在下面 以 5 公里分辨率 因子 5 聚合此栅格 使用 raster
  • R:使用 dcast 时包含没有条目的因子

    我在数据帧上使用 reshape2 函数 dcast 其中一个变量是某些级别未出现在数据框中的因素 但我会将所有值包含在创建的新列中 例如 假设我运行以下命令 library reshape2 dataDF lt data frame id
  • 替换为 NA

    我有一个包含条目的数据框 看来这些值没有被视为 NA 因为 is na 返回 FALSE 我想将这些值转换为 NA 但找不到方法 Use dfr dfr
  • R 在 Ubuntu 中通过代理连接

    我在 Ubuntu 12 04 上安装了 RStudio 0 97 168 当我尝试安装 gstat 库时出现以下错误 install packages gstat dependencies TRUE Warning in install
  • 添加不同的标签以在 ggplot R 中的堆积条形图中显示总计?

    我的问题有点类似 如何添加文本标签以显示ggplot中堆叠比例条的每个条中的总数n https stackoverflow com questions 65201095 how to add text label to show total
  • 为闪亮的应用程序创建桌面图标

    当我在基本 R 提示中提供以下代码时 我会在浏览器中打开一个闪亮的应用程序 shiny runApp C Myapp 我使用 Windows 7 我试图创建一个桌面图标 以避免我的客户每次想要使用该应用程序时都键入上述代码 我创建了一个桌面
  • 使用 roxygen2 记录数据集

    我正在尝试使用 roxygen2 记录 R 包中的一些数据集 仅考虑其中之一 I have mypkg data CpG human GRCh37 RDa 其中包含一个名为的对象CpG human GRCh37 和一个名为 mypkg R
  • R Plotly 禁用图例单击和图例双击

    我想使用 R Plotly 从服务器端禁用绘图图例选择 我们看here https community plot ly t disable legend click functionality hiding traces 1345 2可以使
  • 使用 dplyr 按组计算加权平均值(并复制其他方法)

    我对语法感到困惑dplyr当尝试计算加权平均值时 我听从大卫的建议here https stackoverflow com a 27609266 1457380 语法非常透明 因此很有吸引力 但它似乎没有按我的预期工作 低于加权平均值是针对
  • 如何连接 R 列表中的多个 .wav 文件?

    我有一个 wav 文件列表my list library seewave library tuneR data tico audio lt tico freq lt 22050 breaks lt c 0 0 2 0 4 0 6 0 8 i
  • 是否可以在 R 中创建自定义 pch 形状?

    R 中的许多绘图函数都使用图形参数pch指定数据点的形状 根据R 文档 https www rdocumentation org packages graphics versions 3 6 2 topics points 有 26 个矢量
  • 整理包中的字段说明

    我很抱歉 因为我知道这个答案可能出现在编写 R 包的手册中 但在我阅读和查看其他包的整理字段时 我无法 100 弄清楚该字段的用途 用简单的语言 我的是英语 来看 包的描述文件中的整理字段有什么作用 人们想在那里放什么 我认为这来自于某个时
  • ggplot2:图例中的斜体

    我正在尝试编辑图例中的标签 以便第一个标签 WT 为纯文本 而后续 7 个标签为斜体 我一直在使用element text face c plain rep italic 7 但这导致没有任何标签被转换为斜体 我有点困惑为什么它不起作用 因
  • 通过排列进行多组测试

    我有一个 df 其中包含与两个实验相关的两组值 value 1 和 value 2 一个实验包含两组 0 和 1 另一个实验包含三组 0 1 2 test group Value 1 Value 2 AA 0 15 1 11 2 AA 0
  • 在 R 中高效加载稀疏矩阵

    我在将数据有效加载到 R 中的稀疏矩阵格式时遇到问题 这是我当前策略的 不完整 示例 library Matrix a1 Matrix 0 5000 100000 sparse T for i in 1 5000 a1 i idxOfCol
  • 在ggplot2中添加水平线到绘图和图例

    这段代码创建了一个漂亮的图 但我想在 y 50 处添加一条水平黑线 并让图例显示一条黑线 并在图例中显示文本 cutoff 但在图例中保留源点 我可以使用 geom line 添加该行 但无法在图例中获取该行 library ggplot2
  • 如何将带有几行代码的字符数组转换为 data.frame?

    我有以下数组 my list lt c Jan 01 Dec 31 00 00 24 00 Jan 01 Jun 30 12 00 18 00 Jul 06 Dec 31 09 00 19 00 导致以下结果的最短代码是什么 x1 x2 x
  • 修改x轴刻度标签

    我正在尝试更改由生成的箱线图的 x 轴刻度标签ggplot2 x 轴是一个分类变量 HabFac 我想要的是将其刻度更改为 6 个化学品 A E 下面是我的代码 raw data read table Read data p TT ggpl

随机推荐

  • 在flaskext.mysql中寻找dictcursor的等价物

    我编写了一个Python Flask应用程序 最初使用MySQLdb来访问MySQL 后来我出于同样的目的切换到flaskext mysql 但现在当我使用这个模块时 我看不到如何获取字典结构的游标 当我使用 MySQLdb 模块时 我使用
  • WTForms-JSON 不适用于 FormFields

    当我使用 WTForms JSON 时 嵌套表单 FormFields 不会填充数据 我无法发现我的错误 请参阅下面的示例 from flask import Flask request jsonify from flask wtf imp
  • 管理两个 UI 的最佳方法是什么?

    我创建了两个用户界面 如何关闭第一个并激活下一个 Google Apps 脚本下是否可以有两个 UI 我尝试过类似的事情 var app UiApp getActiveApplication app add app loadComponen
  • Matlab:字符串数组中的数字数组索引(无循环)

    我正在做 MIT OCW MATLAB 入门课程中的一系列问题 你可以看到here 这是问题 9 第 g iii 部分 我有一个矩阵 其中包含一门课程的最终成绩 所有成绩的范围都从 1 到 5 我还有另一个数组 其中仅包含字母 F to A
  • 在构造的字符串上使用 execvp 的问题

    我正在尝试编写一个 shell 其构造的一部分是从用户输入的字符串 缓冲区 执行代码 然而 当我尝试使用附加输入 ae echo a 执行 execvp 字符串时 它总是会搞砸并返回 1 我不知道为什么 这是相关的部分 char buffe
  • 万事达卡的正则表达式

    我找到了信用卡类型 MasterCard 的以下正则表达式 public static readonly string CreditMasterCard 5 1 5 0 9 14 然后我写了下面的代码 Regex regexMasterCa
  • 如何获取多维数组的交集?

    我有一个多维数组的数组 每个数组代表一个搜索结果集 我正在尝试找出如何过滤这组数据以仅包含每个数组中存在的数组 注意 下面显示的索引各自代表多维数组 每个数组都有一个深度嵌套的Id可用于比较的键 The Id位于 reference var
  • PlaceAutocompleteFragment 无法解析

    在我的应用程序中 我添加了谷歌地图 它们工作正常 我想添加一个 PlaceAutocompleteFragment 我正在使用已经为地图生成的密钥 并且我已启用来自 google console 的 Places Api 选项 我已将这些添
  • 处理 AdWhirl 失败

    您好 我正在开发一个 Android 应用程序并使用 AdWhirl 来显示我的广告 我希望能够处理 AdWhirl 不返回广告的情况 当它失败时 我想显示一个装饰栏 谁能给我举个例子吗 提前致谢 好吧 我现在已经弄清楚了 有两种可能的方法
  • 如何读取单个Excel单元格值

    我有一个带有sheet1的Excel文件 其中有一个我需要在第2行和第10列读取的值 这是我的代码 Excel Workbook excelWorkbook excelApp Workbooks Open workbookPath 0 fa
  • 是否有 GCC 关键字允许结构重新排序?

    我知道为什么 GCC 默认情况下不重新排序结构的成员 但我很少编写依赖于结构顺序的代码 那么有什么方法可以将我的结构标记为自动重新排序吗 以前的 GCC 版本有 fipa struct reorg option允许结构重新排序 fwhole
  • 使用VBA将图片插入Excel并保持宽高比不超过尺寸

    我正在将Access数据库中的数据导出到Excel报告中 报告中需要包含的部分内容是与数据对应的图片 图片存储在共享文件中并插入到 Excel 文件中 如下所示 Dim P As Object Dim xlApp As Excel Appl
  • 具有相同哈希码的两个 Java 对象不一定相等吗?

    我理解为什么为两个相等的提供相同的哈希码 通过equals 对象很重要 但反之亦然 如果两个对象具有相同的哈希码 它们是否必须相等 合同还有效吗 我找不到可能发生这种情况的示例 因为如果参与 equals 方法的所有这些属性也都用于覆盖 h
  • PInvoke 和 char**

    我从某人那里得到了这个程序集 我想在我的 C 应用程序中使用它 标题看起来像这样 int declspec dllimport s2o WCHAR filename char out int len 我设法让它部分工作 使用 DllImpo
  • 二元运算符 * 不能应用于 Int 和 Double 类型的操作数

    我正在尝试构建一个简单的 Swift 应用程序来计算增值税 增值税 20 func taxesFree number Int gt Double var textfield self inputTextField text toInt le
  • jaxb 不生成具有基本整数的枚举

    我有以下xsd
  • 用 python 拟合直方图

    我有一个直方图 H hist my data bins my bin histtype step color r 我可以看到形状几乎是高斯的 但我想用高斯函数拟合这个直方图并打印我得到的平均值和西格玛的值 你能帮助我吗 这里有一个在 py2
  • Wpf如何打印列表框

    我想知道打印 ListBox 值的最简单方法是什么 我尝试使用 FlowDocumentReader 但没有成功 如果您尝试打印视觉元素 您可以使用 PrintDialog printDlg new PrintDialog printDlg
  • React 中可以在 Component 里面写 Component 吗?

    我遇到过很多关于如何做的资料来源Component筑巢 然而 每当我尝试创建一个Component在另一个里面Component我的代码失败了 class parent extends React Component class child
  • 强制闪亮循环渲染绘图

    我有一个运行模拟的闪亮应用程序 目标是以图表的形式向用户展示其间的计算步骤 如何强制shiny更新剧情 MWE 看起来像这样 library shiny server lt function input output session bas