1

面グラフでデータセットの一部のみを描画する方法を探しています。チャートの上にスライダーがあり、チャート内の1つのシリーズの範囲を制限し、他のスタイルを全体としてレンダリングできます。これを行うための最良の方法は何だろうか。現時点での唯一のアイデアは、スライダーが移動するたびにグラフを再描画することですが、これによりパフォーマンスが低下する可能性があります。たぶん、これはSVG要素のマスクのようなもので行うことができます。

4

3 に答える 3

4

クリップパスで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)");
于 2013-03-26T15:09:19.110 に答える
0

いくつかの方法があります

于 2013-03-26T09:13:50.970 に答える
0

1つのオプションは、制限する系列データを変更してから、次のように呼び出すことだと思います。

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

ここで、「n」は切り捨てるシリーズの番号です。newDataは、不要なポイントが削除された系列データのコピーです。正しい位置にプロットするには、シリーズのx値とy値を指定する必要があります。

于 2013-03-26T09:36:18.140 に答える