我对动态图表';s showZeroValues选项?

我对动态图表';s showZeroValues选项?,r,time-series,dygraphs,zero,R,Time Series,Dygraphs,Zero,我试图在R中的同一绘图上绘制多个数据系列,但即使使用dyLegend()中的showZeroValues=TRUE参数,当至少一个系列在当前x处的y=0时,图例也会停止在鼠标上显示值。我不确定我做错了什么 下面是一个简化的示例: 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.

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

下面是一个简化的示例:

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值,从光标接近零的情况可以看出,但图例仍然卡在图形的右端:。

我也遇到了同样的问题,并发现这是由包含字符串的
xts
对象引起的。原始数据框有一个日期列,我用它创建
xts
对象,但我没有对数字数据进行子集。这导致创建了带有字符值的
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[, 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)

我也有同样的问题,并发现它是由包含字符串的
xts
对象引起的。原始数据框有一个日期列,我用它创建
xts
对象,但我没有对数字数据进行子集。这导致创建了带有字符值的
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[, 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)