2

// このコードを例に取ります

ここでは、yvalue[0]、yvalue[1] をグループで指定しました。しかし、作成する必要があるグループの数 (つまり、セグメントの数) がわからない一般的な設計が必要です。これは、json によって異なります。データ。

ここでこの例を考えてみましょう。total,total1 があるため、2 つの値しかありません。しかし、3 番目の変数が json で total2 が指定されていると言う場合、棒グラフなどにそのセグメントが必要です。これは、変更せずに行う必要があります。フィールドが追加されるたびにグループ。これを達成する方法はありますか??

ありがとう

var datajson = [ {
country : "china",
total : 20,
total1 : 10
}, {
country : "India",
total : 40,
total1 : 20
}, {
country : "aus",
total : 10,
total1 : 30
}, {
country : "nxz",
total : 50,
total1 : 40
}

    ];

    var xvalue;
    var yvalue = [];
    var i = 0;

    var obj = datajson[0]
    for ( var key in obj) {
        if (xvalue === undefined)
            xvalue = key;
        else {
            yvalue[i] = key;
            i++;
        }

    }



    var chart = c3.generate({
        bindto : '#chart',
        data : {
            json : datajson,

            type : 'bar',
            keys : {
                x : xvalue, // it's possible to specify 'x' when category axis
                value : [yvalue[0],yvalue[1]],
            },
            groups : [ [yvalue[0],yvalue[1]] ]
        },
        bar : {
            width : {
                ratio : 0.3
            // this makes bar width 50% of length between ticks
            }
        },
        axis : {
            x : {
                type : 'category'

        },


        }
    });
4

1 に答える 1

2

あなたの質問にはほとんどの答えがあるようです (オブジェクト プロパティから yvalue 配列を既に生成しています)。

要素を 1 つずつ指定する必要はなく、配列を直接渡すだけで完了です。

groups: [yvalue]
于 2015-06-19T10:42:47.557 に答える