Наука о данных приобрела популярность за последнее десятилетие или около того; в первую очередь из-за экспоненциального роста данных. Но данные - это просто набор цифр, как кто-то может их понять? Здесь на помощь приходят визуализация данных и повествование.

Теперь главный вопрос: каковы основные инструменты для работы? Кто-то может сказать matplotlib, seaborn или даже plotly. Но ничто не может сравниться с масштабируемостью и гибкостью, которые обеспечивает D3.

Для моего проекта визуализации данных в моем Магистерском центре EPFL моей команде пришлось создать вращающийся глобус. Мы изначально думали, как мы собираемся это сделать? После быстрого поиска в Google по запросам Plotly (Python) и D3 (Javascript) мы получили это.

Первой реакцией меня и моей команды после просмотра вышеупомянутой визуализации D3 было: «Как было бы круто, если бы мы могли создать что-то настолько удивительное и интуитивно понятное? Не правда ли? ».

Несмотря на то, что наша команда имела опыт программирования, мы никогда не программировали на Javascript, и всем, кто «когда-либо работал» с Javascript, они знают, что это забавный язык. Так что это наверняка будет непростая задача.

Но для большинства людей, которые планируют начать что-то новое, я бы посоветовал следующее: начните с чего-то довольно простого, постоянно выстраивайте свои концепции, которые, в свою очередь, приводят вас к уверенности, а затем постепенно усложняйте задачу.

Чтобы посмотреть, насколько хорош D3, давайте посмотрим, как создать трехмерный глобус, а также посмотрим, почему он такой классный ?.

Как и в случае с любым другим языком, мы сначала настроим среду, получив D3 и библиотеку Versor. Versor - потрясающая библиотека, которая обрабатывает геометрическую алгебру для вращений (но не волнуйтесь, вам не нужно ничего понимать).

Преимущество 1: D3 можно легко подключить к множеству библиотек, которые облегчат вам жизнь. Будь то topojson для визуализации карт или инерция для перетаскивания земного шара. Кроме того, кому не нравятся модульные библиотеки с открытым исходным кодом?

Затем мы выполняем инициализацию, чтобы настроить «SVG», какую проекцию он будет использовать (плоская или сферическая карта?) и путь для рисования земного шара на SVG.

Преимущество 2: D3 без проблем работает с существующими веб-технологиями и может управлять любой частью DOM (объектной модели документа). Больше гибкости, и вы можете сделать свою визуализацию чем угодно с помощью кривых, дуг, точек! Разве это не круто?

Нам также потребуется инициализировать группу, поскольку каждая страна представляет собой фигуру, и мы группируем все эти фигуры вместе, чтобы создать глобус. Мы также инициализируем инерцию, которая представляет собой библиотеку, которая заботится о вращении земного шара и обновляет SVG каждый раз, когда мы его вращаем.

После всего этого наш (вращающийся!) Глобус выглядит так:

Преимущество 3: D3 не является графической библиотекой, такой как OpenGL, или в нем нет предварительно построенных диаграмм, в отличие от библиотек визуализации данных Python, но он дает программисту возможность гибко связывать данные и визуализацию. вместе.

Я не объяснил, что делает функция render_map . Это потому, что этот пост больше о преимуществах D3; хотя я все же дал ссылку на мой код в конце сообщения. После некоторого взлома CSS (ха-ха!) Я добился следующего:

Преимущество 4: вы все еще ненавидите D3 (надеюсь, нет!)? Но какой другой фреймворк научит вас больше о веб-разработке (SVG, CSS, HTML, JS, концепция дизайна - ВАУ!), А также сделает вас супер-нанимаемым специалистом по данным.

Некоторые люди, которые работали с D3, скорее будут жаловаться на то, что у него очень крутая кривая обучения, и я не буду это отрицать. Но опять же, это компромисс между использованием готовых вещей или созданием динамических и интерактивных историй.

Преимущество 5: сообщество D3 великолепно! (УРА!). Множество первоклассной документации и множество справочных визуализаций. Также особая благодарность Майку Бостоку, который поддерживает процветание сообщества.

и, честно говоря, у команды, с которой я работал, у нас действительно была наша изрядная доля проблем, которые работали с D3 и JS, в частности, но это был очень, очень приятный опыт для нас, и мы также собираемся представить нашу работу в Стэнфорде в марте.

Так что просто начните! Это ссылка на код этого глобуса. Как вы думаете, D3 - это путь вперед? Не стесняйтесь обращаться ко мне в комментариях.