1

我正在考虑实现一个基于 dygraph 的 HTML5 应用程序,该应用程序显示多个类似此应用程序的图: http ://www.triplespark.net/elec/pdev/cpld/ise-pfsim/ise-screen-sim-result.png

我想知道一些对 dygraph 的多个情节有经验的人关于它的实施的意见。如上面的链接所示,绘图应该一个在另一个之上,绘图应该是可移动的(通过复选框)并且只能水平调整大小(放大和缩小)。

我基本上可以看到两种方式:

1)正如这里建议的那样画一个像这样的大图:

http://dygraphs.com/tests/color-visibility.html

2)在不同的div中绘制多个图(我最喜欢的选项)并像这样使它们保持同步:

http://dygraphs.com/tests/synchronize.html

注意:

1)我不想在添加或消除一个地块时重绘所有地块。

2)地块可以有很多点(> 1M点)

我的第二个问题是关于情节的类型。我想知道是否有人能看到如何给我一个关于 data_bus[0:7] 的“可折叠”图的实现的提示

任何建议都会很棒。我知道这个问题是通用的,我计划用最后一个例子来扩展这个问题,这个例子将展示这个问题的解决方案。

问候法布里齐奥

4

1 回答 1

0

这就是我所做的。不是最优雅的,但应该做的工作。

‹script›
data= [
      [new Date('2014/09/26 05:33 UTC'),1, 5],
      [new Date('2014/09/26 05:34 UTC'),2, 6],
      [new Date('2014/09/26 05:35 UTC'),3, 7],
      [new Date('2014/09/26 05:36 UTC'),4, 8]];
function plot(){
  var x=[0,0];
  if(document.opt.normal.checked==true)
  {
    x[0]=1;
  }
  if(document.opt.mean.checked==true)
  {
    x[1]=1;
  }
  var temp=[];
  for(var i=0;i‹data.length;i++)
  {
     temp.push([data[i][0]]);
     if(x[0]==1) temp[i].push(data[i][1]);
     if(x[1]==1) temp[i].push(data[i][1]);
  }
  g= new Dygraph(document.getElementById('chartarea'),temp);
}

‹/script›
‹body onload="plot();"›
    ‹div id="chartarea"›‹/div›
    ‹form name="opt" action="#"x›
        ‹input type="checkbox" name="normal" onclick="plot();" checked/›‹span›y1‹/span›
        ‹br›‹input type="checkbox" name="mean" onclick="plot();"/›‹span›y2‹/span›
‹/body›

编辑:刚刚发现:dygraph setVisibility 方法可用于避免为每个切换重新创建 dygraphs。

于 2014-09-26T11:18:42.310 回答