我有一个包含5个系列的图表,可以按此处讨论的方式切换图例,但是在切换系列时,它们将被删除,但轴不会更新。我在setData()之后和draw()之前添加了setupGrid(),但是没有结果。因此,我认为Flot仍然会计算隐藏的序列,因此我尝试遍历代码并查找setupGrid,并在每个序列循环中添加了一个检查,以使如果行被隐藏并且整个混乱,则循环继续进行。计算。然后我只是在计算x / y max / min时添加了一个检查,这带来了同样的问题。
我应该怎么做才能正确地计算轴?
您是正确的,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();
}
在这里更新了小提琴。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句