Гистограмма в JavaScript?
У меня есть этот набор данных для доход:
Income Number of people 0 245981 8.8 150444 30 126063 49.9 123519 70 115029 90.7 277149 109.1 355768 130 324246 150.3 353239 170.2 396008 190 396725 210 398640 230.1 401932 250 416079 270 412727 289.8 385192 309.7 343178 329.7 293707 349.6 239982 369.7 201557 389.3 165132 442.3 442075 543.4 196526 679.9 146784 883.9 48600 1555 44644
(как вы можете видеть, ширина между уровнями дохода становится больше к концу.)
- как сделать точную гистограмму этих данных в JavaScript? (На линейная шкала оси x с диапазоном от, например, 0-2000)
- как я могу рассчитать количество людей, чтобы показать только проценты на разные интервалы?
- если я хотел бы разместить ровно 100 символов, представляющих данные, как решу ли я, куда их поместить?
2 ответов
существующие примеры гистограмм основаны на вычисления гистограммы из образцов, скажем, если у вас есть список людей и их доходы. В этом случае, у вас уже есть данные для гистограммы-вы просто хотите, чтобы отобразить его.
хитрость здесь в том, что ваша гистограмма имеет ячейки переменной ширины. Первое, что вы можете сделать, это игнорировать переменную ширину каждого ящика и просто отображать простую диаграмму леденца. The x-ось является линейной шкала для дохода, и y-ось представляет собой линейную шкалу для подсчета людей:
Если вы хотите преобразовать это в гистограмму, вы не можете просто заменить эти линии фиксированной ширины барами переменной ширины; вам нужно нормализовать данные так, чтобы площадью бара кодирует частоту людей с этим доходом. Таким образом, ширина полосы диапазон доходов (например, от 0 до 8,8 для первого ящик), и высота адвокатского сословия количество людей разделенное шириной. В результате площадь (ширина × высота) пропорциональна количеству людей. Это выглядит так:
Если вы просто хотите или вам нужно отсортировать данные в бункеры, без построения графика взгляните на гистограмма.js.