D C. js: невозможно построить линейный график в порядке убывания - PullRequest
1 голос
/ 09 апреля 2020

По сути, у меня есть уменьшающийся линейный график, но когда я делаю перекрестную фильтрацию, он больше не будет уменьшаться, так как метки оси X станут фиксированными. Я хочу, чтобы метки этой оси X были динамическими c и располагались на основе значений оси Y. Я не могу найти синтаксис или что будет использоваться для этого случая.

enter image description here

Я инициализирую свой график как

lineChart2
    .height(600)
    .width(lineChart2.width()*0.95) //give it a width
    // .margins({top: 10, right: 10, bottom: 20, left: 100})//give it margin left of 100 so that the y axis ticks dont cut off
    .dimension(lineTypeDimension)
    .group(lineTypeGroup) 
    .ordering(function(kv) { 
        console.log("val:",kv.value);
        return -kv.value; })
    .x(d3.scaleOrdinal( ))
    .xUnits(dc.units.ordinal)
    .interpolate('linear')
    .elasticY(true)
    .renderArea(true)
     .renderlet(function(chart){chart.selectAll("circle.dot").style("fill-opacity", 1).on('mousemove', null).on('mouseout', null);})

    // .renderTitle(true)
    .renderLabel(true)
    .xAxis().ticks(3).tickFormat(function(d) {
        return d;
    });

Вот рабочая демонстрация: https://blockbuilder.org/ninjakx/302eaacb0a333e67c46c55dd60d27811

1 Ответ

0 голосов
/ 10 апреля 2020

Вы можете получить линейный график для пересчета домена X при каждом перерисовке, установив

lineChart2
    .elasticX(true)

Эта функция изначально предназначалась для линейных масштабов, чтобы рассчитать минимальное и максимальное значения каждого перерисовки. Порядковые шкалы работают по-разному, с последовательностью значений доменов и диапазонов, но если задать параметрasticX, диаграмма пересчитает шкалу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...