Как динамически изменить размер корзины на гистограмме (d c. js)? - PullRequest
1 голос
/ 11 марта 2020

Итак, я вызываю приведенный ниже код несколько раз, но проблема в том, что размер ячейки гистограммы привязан к первым данным, которые я помещаю в остальное, все меняется, как и должно, но не размер ячейки.

barChart
        .width(1080)
        .height(138)
        .margins({top: 10, right: 10, bottom: 20, left: 50})
        .dimension(key_map[$(this).text()].Dim)
        .group(key_map[$(this).text()].Group)
        .colors(['#6baed6'])
        .x(d3.scale.ordinal().domain(key_map[$(this).text()].Dim)) 
        .xUnits(dc.units.ordinal)
        .elasticY(true)
        .yAxis().ticks(4);

    barChart.elasticX(true).filterAll();dc.redrawAll(); 

1 Ответ

0 голосов
/ 16 марта 2020

Благодаря @ Гордону я наконец понял это.

Массив ключей игнорировался, несмотря на то, что я звонил elasticX(true); Так что в итоге я позвонил chart.focus([all_the_keys_from_the group]); И теперь он отлично работает.

barChart
    .dimension(key_map[$(this).text()].Dim)
    .group(key_map[$(this).text()].Group)
    .x(d3.scale.ordinal().domain(key_map[$(this).text()].Dim)) 
    .xUnits(dc.units.ordinal)
    .elasticX(true);
    var focus_keys = [];

    key_map[$(this).text()].Group.all().forEach(element => {
        focus_keys.push(element.key);
    });

    barChart.focus(focus_keys);
    barChart.filterAll(); dc.redrawAll(); 
...