2

皆さん、
私の意図は、同位体表の一部を表すインタラクティブなチャートを作成することです。たとえば、ここで見ることができます: http://www.nndc.bnl.gov/chart/ .

だから:私は〜400点の2次元グラフを持っています。各ポイントに含めたメタデータの値に従って、ポイントが描画された後にポイントを色分けしたいと考えています。たとえば、赤の 10 の色合いがあり、ポイントのメタデータ値がどこにあるかに応じて設定します。

テストとして、関数呼び出しを正しく行うために、すべてを赤くしようとしました。

これは私の問題です: このコードを使用してこれを行う方法を見つけました (チャートの読み込みイベントに配置されます):

for (var i = 0; i < this.series[0].data.length; i++) {
                    this.series[1].points[i].update({
                        marker: {
                            fillColor: "#FF0000"
                        }
                    });

しかし、 series.points.update() を使用すると非常に遅いことがわかりました。

マーカー プロパティに直接アクセスしようとしました。私が書くことができるAPIから最初に推測します: series[i].data[j].marker.fillColor="#FF0000"

または、highcharts-more.js で見つけた少しのコードから判断すると、 series[i].data[j].markerOptions.fillColor="#FF0000"

しかし、API が「初期構成オプション」の下にマーカーへの直接呼び出しをリストし、「メソッドとプロパティ」の下に直接呼び出しがないことがわかりました。

私の質問: グラフが描画された後、何百ものポイントにマーカーの色を設定する簡単な方法はありますか? または、グラフが描画される前にどうにかしてより速く変更できますか?

参考までに、私のコードは次のとおりです: http://jsfiddle.net/mattmcg/bn35f/13/
非常に長いですが、関連する部分は 5 ~ 14 行目にあります。

ありがとう!

4

2 に答える 2

4

レンダリング後に更新するのではなく、各ポイントのデータ オブジェクトで直接色を指定します。

次のように、plotOptions で指定できるものは何でも point オブジェクトのパラメーターとして送信できます。

data:[{x:0,y:10,marker:{fillColor:'rgba(255,0,0,.5)'}},{x:10,y:25,marker:{fillColor:'rgba(255,0,0,.75)'}},{x:25,y:30,marker:{fillColor:'rgba(255,0,0,.25)'}}]

等...

于 2013-08-15T14:25:22.070 に答える
2

update() を呼び出すたびにチャートが再描画されるという事実に関連しています。再描画を無効にする (false パラメータ) 方が良いでしょう。

http://api.highcharts.com/highcharts#Point.update()

于 2013-08-15T14:14:05.393 に答える