【问题标题】:Synchronization of dygraph in R not workingR中的dygraph同步不起作用
【发布时间】:2014-12-11 06:20:44
【问题描述】:

我正在运行以下 RSTUDIO 帮助页面提供的 dygraph 示例。

http://rstudio.github.io/dygraphs/gallery-synchronization.html

当我运行以下代码时,我会分别获得每个 dygraph 的单独图。

dygraph(ldeaths, main = "All", group = "lung-deaths")
dygraph(mdeaths, main = "Male", group = "lung-deaths")
dygraph(fdeaths, main = "Female", group = "lung-deaths")

我没有得到帮助页面中显示的同步图。 “组”变量“肺死亡”不是 xts 对象的一部分。 如果我在这里遗漏了一些基本的东西,请告诉我。

谢谢

普雷迪普

【问题讨论】:

  • 该包目前只支持同步缩放级别,如?dygraph“组内绘图的x轴缩放级别自动同步”。您可以在其 Github 存储库上打开一个问题。
  • 你发现了吗?我有同样的问题。这三个 dygraph 不会同时显示在 RStudio 的查看器选项卡中。相反,每个都一次显示一个,因此您必须使用后退箭头查看前两个。

标签: r rstudio dygraphs


【解决方案1】:

要在同一个 RStudio 窗口中绘制多个 dygraphs,您必须首先创建一个 dygraphs 对象列表,然后使用渲染 dygraphs 列表包htmltools。 RStudio 的 Yihui Xie 在这里给出了答案: Yihui Xie answer(但没有分组)。
我在这里回答了类似的问题:my answer,在这里:my answer

这是生成分组(同步)dygraphs 图的R 代码:

# create a list of dygraphs objects
library(dygraphs)
library(htmltools)
dy_graph <- list(
  dygraphs::dygraph(ldeaths, main = "All", group = "lung-deaths"),
  dygraphs::dygraph(mdeaths, main = "Male", group = "lung-deaths"),
  dygraphs::dygraph(fdeaths, main = "Female", group = "lung-deaths")
)  # end list

# render the dygraphs objects using htmltools
htmltools::browsable(htmltools::tagList(dy_graph))

上述R 代码生成以下分组(同步)dygraphs 图:

【讨论】:

    【解决方案2】:

    (我无法添加评论,因为我还没有足够的声誉。)

    通过检查 dygraph 的 gallery 背后的代码(右键单击图表并在 Google Chrome 中选择“检查”),看起来每个图表都是其自己的 html 元素。因此,只有当它们一起在同一个 html 页面上时,它们才能被同步。这在 Rstudio 中不起作用。

    如果可以一次绘制多个dygraph() 图表(正如@schlusie 在这个 SO 问题dygraph in R multiple plots at once 中提出的那样,但还没有答案),那么同步可能在 Rstudio 中起作用。

    也许了解css的人有不同的看法。

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题。我无法重现 RStudio 中 gallery help page 提供的同步 dygraph 示例。 但是,为了满足我对纯可视化的需求,我在github 上找到了一种解决方法:

      根据您的需要在 R 脚本(例如 myscript.R)中指定您的 dygraph 对象并将它们分配给变量(例如 d1d2)。

      d1 = dygraph(ldeaths, main = "All", group = "lung-deaths")
      d2 = dygraph(mdeaths, main = "Male", group = "lung-deaths")
      

      打开一个 R-markdown 文档,source() 您的 R-script 在代码单元格中并调用变量。

       {r, echo=FALSE}
       source("myscript.R")
       d1
       d2
      

      最后,将 R-markdown 文档渲染成 html 文件(Kint to html)。通过设置echo=FALSE,您可以抑制字母数字输出,并最终得到一个带有同步 dygraph 绘图的 html 文档。

      【讨论】:

        猜你喜欢
        • 2019-04-24
        • 2015-08-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多