【问题标题】:What am I doing wrong with dygraph's showZeroValues option?dygraph 的 showZeroValues 选项我做错了什么?
【发布时间】:2019-06-18 22:00:49
【问题描述】:

我正在尝试将多个数据系列绘制到 R 中的同一个图上,但即使在 dyLegend() 中使用 showZeroValues=TRUE 参数,当至少一个系列具有 y=0 时,图例在鼠标悬停时停止显示值在当前 x。我不确定我做错了什么。

下面是一个简化的例子:

library(dygraphs)
library(xts)

x=data.frame(a=c(1, 2, 3, 1, 0, 0, 2), b=c(2, 3, 1, 0, 1, 4, 5))
x$Date=seq(as.Date("2017-06-01"), (as.Date("2017-06-01")+dim(x)[1]-1), by="days")
d=xts(x, order.by=x$Date)[,1:2]

dygraph(d) %>%
  dyOptions(drawGrid=FALSE, fillGraph=TRUE) %>%
  dyLegend(labelsSeparateLines=TRUE, showZeroValues=TRUE)

在我的计算机上,动态图例会跳过两个系列之一具有 y=0 的所有 x 值,可以看到光标接近零,但图例仍停留在图表的右端:@ 987654321@.

【问题讨论】:

    标签: r time-series dygraphs zero


    【解决方案1】:

    我遇到了同样的问题,发现它是由包含字符串的xts 对象引起的。原始数据框有一个 Date 列,我用它来创建 xts 对象,但我没有对数值数据进行子集化。这导致 xts 对象被创建但具有字符值(请参阅issue here)。令人惊讶的是,结果图并没有受到太大影响,而且输出是正确的,这使得故障排除变得不那么简单了。

    在您的示例中,以下应该可以解决问题:

    x=data.frame(a=c(1, 2, 3, 1, 0, 0, 2), b=c(2, 3, 1, 0, 1, 4, 5))
    x$Date=seq(as.Date("2017-06-01"), (as.Date("2017-06-01")+dim(x)[1]-1), by="days")
    d=xts(x[, 1:2], order.by=x$Date) # This is the only change in your code
    
    dygraph(d) %>%
      dyOptions(drawGrid=FALSE, fillGraph=TRUE) %>%
      dyLegend(labelsSeparateLines=TRUE, showZeroValues=TRUE)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-08
      • 2011-06-01
      • 1970-01-01
      • 2018-06-20
      • 2021-04-14
      • 2021-04-19
      • 2017-03-13
      • 2017-01-18
      相关资源
      最近更新 更多