0

ここに質問用のサンプルコードがあります: http://jsfiddle.net/MuydK/

この問題は、ドリルインおよびドリルアウトした後に、チャートの下のキーの凡例のタイトルが変更されていることに関連しています。

それらは「実績」と「目標」のままであるべきであり、「シリーズ 1」と「シリーズ 2」に変わりつつあります。

$(function () {
    var chart;
    $(document).ready(function () {
        var colors = Highcharts.getOptions().colors,
        categories1 = ['1011', '1112', '1213', '1415'],
        name1 = 'Actual',

ドリルダウン構成または setChart コードで何か不足していると思いますか? 上記のコードに基づくグラフの場合、いくつかの同じ問題が発生しました。

どうもありがとう

4

2 に答える 2

1

これがあなたが必要とするものであることを願っています、

JSFiddle - 凡例名の問題

コード:

function setChart(name, categories, data, color) {
       console.log(name, categories, data, color);
       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],
                color: color[i]
           });
      }
 }
于 2012-11-17T14:46:21.193 に答える
0

Edit2:問題は、次の関数のelseステートメントにあります。

click: function() {
    var drilldown = this.drilldown;
    if (drilldown) { // drill down
        setChart(drilldown.name, drilldown.categories, [drilldown.data], drilldown.color);
    } else { // restore
        setChart(name, categories1, [data1, data2], 'white');
    }
}​

name1 = 'Actual'代わりに、 and のみを取り除き、data1anddata2を追加するnamecolor、代わりにこのようにすることができます

click: function() {
    var drilldown = this.drilldown;
    if (drilldown) { // drill down
        chart.xAxis[0].setCategories(drilldown.categories);
        setChart([drilldown.data]);
    } else { // restore
        chart.xAxis[0].setCategories(categories);
        setChart([data1, data2]);
    }
}

// add code for removing series
chart.addSeries({
    data
});​

理解していただければ幸いですがdata1/2、highcharts オブジェクトとして構築し、そこにドリルダウン部分を追加するだけで簡単に作成できます。だからあなたは変えることができます。

series: [{
    name: name1,
    data: data1,
    color: colors[0]},
{
    name: name2,
    data: data2,
    color: colors[1]}],

に:

series: [data1, data2],​

編集:以下の操作を行っているときは、 redraw をtrueに設定しないでください。はるかに高速になります。シリーズを追加する場合も同様です。chart.redraw()チャートを削除して追加するまで、電話する必要はありません。そして、ものを取り除くのは後方に簡単です。だから変更:

while (chart.series.length > 0) {
    chart.series[0].remove(true);
}

for (var i = chart.series.length; i >= 0; i--){
    chart.series[i].remove(false);
}
// add series with redraw == false
chart.redraw();
于 2012-11-16T20:41:09.157 に答える