Dygraph多个图 - 打开和关闭它们

时间:2013-10-03 16:22:28

标签: javascript dygraphs

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

我想知道一些有关dygraph多个情节经验的人的意见。在上面的链接中可以看到,绘图应该被粘贴在另一个上面,绘图应该是可移动的(通过复选框)并且只能水平调整(放大和缩小)。

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

1)正如所建议的那样here绘制一个像这样的大图:

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

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

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

请注意:

1)当添加或删除一个图时,我不想重绘所有图。

2)图可以有许多点(> 1M点)

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

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

此致 的Fabrizio

1 个答案:

答案 0 :(得分: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方法可用于避免为每次切换重新创建dygraph。