Ошибка C3js и D3js: недопустимое значение атрибута ‹g› transform=translate(0,NaN)

Я пытаюсь создать кучу панелей с помощью d3js, а затем пытаюсь заполнить эти панели графиками с помощью C3js. По какой-то причине я продолжаю получать:

Error: Invalid value for <g> attribute transform="translate(0,NaN)"

Когда я жестко кодирую панели, все работает нормально. Вот пример кода, который показывает ошибку: https://jsfiddle.net/tgp9gqfb/2/

Любое направление о том, что я делаю неправильно?


person amustafa    schedule 24.12.2015    source источник
comment
Я не могу ответить, но проблема, похоже, связана с типом данных, к которым привязан x_graph_wrapper. Сокращенный пример: jsfiddle.net/sysvtm40/1   -  person Jean-Baptiste Rudant    schedule 24.12.2015


Ответы (1)


Вместо того, чтобы делать это с установкой данных и созданием div:

d3.select("#page-wrapper").selectAll("div")
            .data(order_labels["a"]);

Сделайте то же самое с циклом for:

  order_labels["a"].forEach(function(d) {
    new_panels = d3.select("#page-wrapper").append('div').attr('class', "panel panel-default");
    new_panels.append('div').attr('class', "panel-heading").text(function() {
      return readable_lables[d];
    });
    new_panels.append('div').attr('class', "panel-body").append('div').attr("id", function() {
      return d + "graph_wrapper";
    });
    new_panels.append('div').attr('class', "panel-footer");
  });

Я согласен с тем, что вы делаете правильно, но внутренняя ошибка c3 связана с данными в div, поэтому я прошу вас сделать то же самое с циклом for.

Рабочий код здесь

Надеюсь это поможет!

person Cyril Cherian    schedule 24.12.2015
comment
Спасибо Кирилл и Жан. Причина заключалась в том, что массив данных был строковым значением, и по какой-то причине модуль C3js не обрабатывал его должным образом. Ваш ответ представляет собой допустимый обходной путь. Не могли бы вы добавить тот факт, что это было из-за струн? - person amustafa; 27.12.2015