Сгруппированная столбчатая диаграмма, отображающая перекрестные вкладки между группами

#javascript #d3.js #bar-chart #data-visualization

#javascript #d3.js #столбчатая диаграмма #визуализация данных

Вопрос:

Я пытаюсь создать гистограмму группы, которая дает частоту двух групповых комбинаций. Я ссылался на этот сайт для справки о функции свертки и вложенности: http://bl.ocks.org/phoebebright/raw/3176159 /

Я пытаюсь использовать свой собственный набор данных для создания следующего эффекта: https://bl.ocks.org/bricedev/0d95074b6d83a77dc3ad

Моя текущая попытка с моими собственными данными, drug1.csv: https://blockbuilder.org/lydiawawa/9efb5df76c08640316efbef702437db7

В консоли сгруппированные подсчеты, похоже, не генерируют правильные распределения. Что-то не так с моим накопительным пакетом и гнездом

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

Ниже приведен желаемый счетчик распределения перекрестных вкладок для s_category x drug_cat :

       1   2   3   4   5   6
  2 367  35   8   1   1   1
  3 223  24   4   4   2   2
  4  29   5   9   1   2   3
  5  37   1   3   3   2  26
  

Статическая диаграмма:
введите описание изображения здесь

В анимированной гистограмме, которую я пытался создать, количество перекрестных вкладок должно быть по оси y, drug_c — это ось x, а s_category определяет группы гистограммы. Спасибо за любую помощь!

Ответ №1:

В тот момент, когда вы используете генератор гнезд, у вас больше нет drug_cat count свойств and as: у вас есть key and values (или value для внутренних массивов).

Вот ваш конструктор блоков, изменяющий имена этих свойств: https://blockbuilder.org/GerardoFurtado/f4c825a5f8c92e87cc5a81591ba1f7c9

Комментарии:

1. Не могли бы вы просветить меня о том, как отсортировать ось x в числовом порядке так, чтобы она находилась в 1,2,3,4,5,6 на основе моего пересмотренного кода: blockbuilder.org/lydiawawa/970146c168b2acdcb3598164bb41c2db Или мне нужно открыть другое сообщение …XD…

2. @lydias Здесь: blockbuilder.org/GerardoFurtado /…

3. Спасибо! Это так просто; Я никогда бы не подумал об этом. Я многому научился в борьбе за последние несколько дней.