как изменить порядок пути в соответствии с осью х при использовании d3.js - PullRequest
0 голосов
/ 22 ноября 2018

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

Например: данные:

year,orange,apple
1976,30,20
1980,20,40
1988,50,30

связанный код:

stack = d3.stack()
      .order(d3.stackOrderAscending)
      // .order(order)
      .keys(keys);

series = stack(data);

area = d3
  .area()
  .x(function(d) {
    return xScale(new Date(d.data.year, 0, 1));
  })
  .y0(function(d) {
    return yScale(d[0]);
  })
  .y1(function(d) {
    return yScale(d[1]);
  });

$ele
  .selectAll('path')
  .data(series)
  .enter()
  .append('path')
  .attr('class', 'area')
  .attr('transform', 'translate(' + template.padding + ',0)')
  .attr('d', area)
  .attr('fill', function(d, i) {
    return get_colors(i);
  });

Это выглядит так:

Текущий результат enter image description here Но я хочу поставить максимальное значение в верхнюю часть (в соответствии со значением оси x)graph enter image description here И, следовательно, порядок категорий будет меняться по оси X.

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

Я надеюсь, вы понимаете, что я сказал. Спасибо !!!

...