2016-12-22 10 views
0

Используется для этого c3js - having the X axis in the middle of the chart, чтобы получить график, начиная с 0. Но когда я нажимаю на легенду, сетка x возвращает нижнюю. Любые идеи о том, как начать с нуля?c3js имеют начало оси x от 0, когда оно имеет отрицательное значение

Мои графики создаются динамически и назначены на конкретный дом элемент ID

ответ

1

Ваша манипуляция d3 только вызывается один раз после того, как вы создали диаграмму. Когда вы используете легенду для переключения чего-то, диаграмма снова генерирует себя, не отображая этот конкретный выбор. Когда это произойдет, вам придется снова манипулировать диаграммой. Вы можете сделать это, используя событие onclick из легенды. Вы должны снова вызвать функцию toggle, потому что вы переопределяете функцию onclick по умолчанию.

var chart = c3.generate({ 
    ... 
    legend:{ 
      item:{ 
      onclick: function(data){ 
      chart.toggle(data); 
      d3.select(chart.element) 
      .select('.' + c3.chart.internal.fn.CLASS.axisX).transition() 
      .attr('transform', "translate(" + 0 + "," + chart.internal.y(0) + ")") 
      } 
      } 
     } 
}); 
+0

потому что моя диаграмма динамична, я использовал 'this.api.toggle (data);' вместо chart.toggle (data), когда я создал свою диаграмму – Julian