在Highcharts中仅绘制部分数据

时间:2013-03-26 08:33:34

标签: highcharts

我正在寻找一种只在区域图表中绘制部分数据集的方法。图表上方有一个滑块,可以限制图表中一个系列的范围,而其他窗格则整体呈现。我想知道最好的方法是什么。目前唯一的想法是每次滑块移动时重绘图表,但我担心这会导致性能下降。也许这可以通过SVG元素上的掩码来完成。

3 个答案:

答案 0 :(得分:3)

我想出了一个简单的解决方案,只需用剪辑路径剪切svg图:

    //var chart is the actual HighChartsInstance;
    var renderer = chart.renderer;
    var group = renderer.g().add();
    var clipPath = renderer.createElement("clipPath");

    clipPath.element.id = 'clip';
    var rect = renderer.rect(0, 0, 200, 400).add(clipPath);
    this.clippingMask = rect.element; //reference to the clipping rect which width is changed by the slider

    clipPath.add(group);
    chart.series[1].group.element.setAttribute('clip-path', "url(#clip)");
    chart.series[1].group.element.childNodes[0].setAttribute('clip-path', "url(#clip)");

答案 1 :(得分:0)

你有几种方法

答案 2 :(得分:0)

我认为一个选项是修改您要限制的系列数据,然后调用:

 chart.series[n].setData(newData);

其中' n'是您要截断的系列的编号。 newData是系列数据的副本,其中包含不需要的点。您需要在系列中指定x和y值,以便将其绘制在正确的位置。