Приветствую!
В этом цикле статей я попытаюсь доступно объяснить, что такое масштабирование применительно к визуализации данных, зачем оно нужно, и как оно представлено в библиотеке D3. Надеюсь, будет познавательно.
При разработке визуализации данных всегда имеется одна и та же ключевая задача, которую вам приходится решать снова и снова: сопоставление входным данным визуальных образов. Например, необходимо сопоставить недавно купленный смартфон за 18000р с столбиком высотой 240 пикселей, а также ваш последний поход в кафе, который обошелся в 1453р со столбиком высотой, скажем 50 пикселей. В каком-то смысле, это все, что представляет из себя визуализация данных - сопоставление входным данным каких-либо характеристик визуальных образов так, чтобы при взгляде на визуализацию сразу было ясно о чем идет речь.
В первую очередь следует сказать, что в D3 функции масштабирования являются одновременно и объектами. Как объект, они имеют собственные методы, которые необходимы для настройки функций масштабирования.
Еще необходимо упомянуть, что в D3 использование функций масштабирования для построения визуализаций не является обязательным. Тем не менее, использование их может невероятно упростить процесс преобразования входного набора данных в визуальные образы.
Но ближе к делу.
Как мы знаем из курса школьной математики, функция — это правило, по которому каждому элементу одного множества (называемого областью определения) ставится в соответствие некоторый элемент другого множества (называемого областью значений), то есть:
Множество A - область определения; множество B - область значений.
Так вот: в документации к D3 масштабирующие функции разелены на три вида:
1. Функции, область определения которых представлена всякого рода числовыми последовательностями. Буду называть их количественными функциями масштабирования(в англ. документации quantitative);
2. Функции, область определения которых представлена разными множествами. Буду называть их порядковыми функциями масштабирования(в англ. документации ordinal);
3. Функции, область определения которых представлена датами, то есть временные функции масштабирования.
Так как описание каждого вида масштабирующей функции само по себе включает много текста, пояснений и изображений, я решил для каждого вида функции масштабирования выделить отдельную запись. По мере выкладывания новой записи, раскрывающей использование той или иной функции масштабирования, в этом посте будут обновляться ссылки.