【问题标题】:Update axes when toggling series jquery flot切换系列 jquery flot 时更新轴
【发布时间】:2013-11-06 01:15:35
【问题描述】:

我有一个包含 5 个系列的图表,我可以按照 here 的讨论来切换图例,但是当切换系列时,它们会被删除,但轴不会更新。我在 setData() 之后和 draw() 之前添加了 setupGrid() 但没有结果。所以我认为 Flot 仍然计算隐藏的系列,所以我尝试通过代码并查找 setupGrid 并在每个系列循环中添加了一个检查,以便如果该行被隐藏并且只是搞砸了整个循环,则循环继续计算。然后我在计算 x/y max/min 时添加了一个检查,这给出了同样的问题。

我应该怎么做才能正确计算轴?

【问题讨论】:

    标签: javascript jquery flot


    【解决方案1】:

    你是对的,flot 在计算自动缩放时没有考虑系列的可见性。在 0.8.1 版本中,罪魁祸首在第 1177 行附近,当时它设置了 datamax/datamin 属性。如果它永远不会被绘制,它可以跳过这个系列:

    if (s.lines.show == false &&
        s.points.show == false &&
        s.bars.show == false) continue;
    

    但是,我担心这会破坏引入额外绘图类型的插件。


    所以,我只是屏蔽数据以使自动缩放工作:

    togglePlot = function(seriesIdx)
    {
      var someData = somePlot.getData();  
      someData[seriesIdx].lines.show = !someData[seriesIdx].lines.show;  
      if (!someData[seriesIdx].lines.show){
          someData[seriesIdx].tempData = someData[seriesIdx].data;
          someData[seriesIdx].data = [];  // store old data and blank out real data
      }
      else
      {
          someData[seriesIdx].data = someData[seriesIdx].tempData; // restore real data
      }
      somePlot.setData(someData);
      somePlot.setupGrid();
      somePlot.draw();
    }
    

    更新小提琴here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多