2

ここで説明したように、凡例を切り替えることができる 5 つのシリーズのグラフがありますが、シリーズを切り替えると、それらは削除されますが、軸は更新されません。setData() の後、draw() の前に setupGrid() を追加しましたが、結果はありません。Flotはまだ非表示のシリーズをカウントしていると思ったので、コードを調べてsetupGridを探し、すべてのシリーズループでチェックを追加して、行が非表示になっていて全体が台無しになった場合にループが継続するようにしました計算。次に、x/y max/min を計算するときにチェックを追加したところ、同じ問題が発生しました。

軸を正しく計算するにはどうすればよいですか?

4

1 に答える 1

3

あなたは正しいです、flot自動スケーリングの計算時にシリーズの可視性を考慮しません。バージョン 0.8.1 では、原因はdatamax/datamin属性を設定する 1177 行あたりです。描画されない場合は、シリーズをスキップできます。

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();
}

ここでフィドルを更新しました。

于 2013-11-05T17:15:35.333 に答える