Ошибка при настройке домена для сгруппированной гистограммы - PullRequest
1 голос
/ 21 апреля 2019

Я делаю гистограмму группы, хотя d3.js, но получил ошибку, что я не могу выяснить причину. Я все еще новичок в d3.js и пытаюсь выучить скрипт самостоятельно. Любая помощь от сообщества будет оценена.

Ошибка вызвана этим сегментом кода:

y.domain([0, d3.max(data, function(s_category) { 
    return d3.max(s_category.values, 
        function(d) { 
            return d.count; }); 
    })
]);

Ошибка:

Uncaught TypeError: Невозможно прочитать свойство 'length' из неопределенного

Ниже приведен мой полный код:

https://blockbuilder.org/lydiawawa/9efb5df76c08640316efbef702437db7

На графике count должен быть осью y, drug_c - осью x, а s_category определяет группы гистограммы.

1 Ответ

1 голос
/ 21 апреля 2019

Учитывая вашу структуру данных, которая представляет собой простой массив объектов, ваш фрагмент для получения домена не имеет большого смысла.

Однако, зная, что:

  1. Этосгруппированная гистограмма и ...
  2. Вы используете values ниже в коде.

Мне кажется, что вы намеревались использовать генератор nest, напримерэто:

const nestedData = d3.nest()
    .key(function(d){return d.s_category})
    .entries(data);

Вот ваш код с этим изменением: http://bl.ocks.org/GerardoFurtado/80ba2580f758a64046c3e6f513203cd2/7aa3816ad65ed09bd99eeb29ba80892e19cdcbd0


PS: вы используете заполнение для масштабных диапазонов так же, как и диапазоншкала для цветов (она должна быть порядковой).Кроме того, я удалил легенды, вы должны исправить этот кусок кода.

...