【问题标题】:Dygraph multiple plots - turn them on and offDygraph 多个绘图 - 打开和关闭它们
【发布时间】:2013-10-03 16:22:27
【问题描述】:

我正在考虑实现一个基于 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] 的“可折叠”图的实现的提示

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

问候 法布里奇奥

【问题讨论】:

标签: javascript dygraphs


【解决方案1】:

这就是我所做的。不是最优雅的,但应该能胜任。

‹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。

【讨论】:

    猜你喜欢
    • 2022-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-29
    • 1970-01-01
    • 1970-01-01
    • 2012-03-13
    • 1970-01-01
    相关资源
    最近更新 更多