0

これは、Highchartsフォーラム、 http://www.google.com/url? sa = t&rct = j&q =&esrc = s&source = web&cd = 2&ved = 0CC4QFjAB&url = http%3A%2F%2Fwww.highslide.com%2Fforumからの古い質問です。 %2Fviewtopic.php%3Ff%3D9%26t%3D16573&ei = J_2GUM7fEoSC9QT0lICoCA&usg = AFQjCNGq_GxmSd0YUxWUyy96UHLZA0zb9w&sig2 = RzAkhldNbvCowk8I1kmRV

私は今日それを実装していて、フォーラムの投稿の解決策はうまくいきました。ただし、3列の2レベルのドリルダウンチャートであるカスタムソリューションを作成する必要がありました。明確にするために、フォーラムで提供されるソリューションは、最初のチャートの2列、次にドリルダウンの1列でのみ実際にうまく機能します。私のチャートには、初期チャートとドリルダウンチャートの両方に3つの列が必要です。

ドリルダウンの移行とその仕組みを完全に理解できなかったため、コードをカスタマイズするのは非常に困難です。また、実装にはかなりの重複コードが含まれているため、Highchartsドリルダウンについて理解を深めている方がいらっしゃいましたら、それを機能させる方法についてアドバイスをお寄せください。

コードの重要な部分は

            var drilldown = this.drilldown;

            if (drilldown) { // drill down
               setChart(drilldown.name, drilldown.categories, drilldown.data, drilldown.color);
            } else { // restore
                 setChart(name, categories, data);

             }

およびsetChart():

function setChart(name, categories, data) {
        chart.counters.color = 0;
        chart.xAxis[0].setCategories(categories);
        while (chart.series.length > 0){
            chart.series[0].remove(true);
        }
        for (var i = 0; i < data.length; i++) {
            chart.addSeries({
                name: name[i],
                data: data[i]
            });
        }
    }

this.drilldownとsetChart()の入力を決定する方法は、それを正しくするための鍵です。

私が試したフィドルは次のとおりです。http://jsfiddle.net/dTkh4/2/

4

1 に答える 1

0

答えは

var drilldown = this.drilldown;

if (drilldown) { // drill down
   setChart(drilldown.name, drilldown.categories, drilldown.data);

} else { // restore
   setChart([name1, name2, name3], categories1, [data1, data2, data3]);
}

3つの分割列を表示するドリルダウンビューを作成するには、drilldown.nameとdrilldown.dataが3のネストされた配列である必要があり、各子配列には各カテゴリの値があります。復元部分では、名前3が追加され、復元時に2列ではなく3列が表示されます。

于 2012-10-24T02:49:02.407 に答える