Введение в d3.js в 10 основных примерах

Введение в d3.js в 10 основных примерах

D3.js — это библиотека JavaScript для управления документы на основании данных. Позволяет построить абсолютно любой тип визуализация данных. В этом документе представлены 10 интерактивных примеров, иллюстрирующих ключевые концепции d3, ведущие к первой базовой диаграмме рассеяния. Обратите внимание, что этот онлайн-курс — отличный ресурс для начала работы с d3.js.


→ Объяснение:

  • HTML расшифровывается как Язык гипертекстовой разметки . По сути, это язык любого веб-сайта . Веб-браузеры, такие как Mozilla или Safari, читают файлы такого типа и переводят их на веб-страницу.
  • В файле HTML создаются элементы, составляющие веб-страницу, разделенные тегами . Например, заголовок уровня 1 представлен тегом h2 , абзац с тегом
    тег p
    , изображение по тегу img и так далее.
  • Невозможно создать визуализацию d3.js без базовых знаний html. На мой взгляд, это руководство от W3School может стать хорошей отправной точкой.

→ Пример:

→ Попробуйте:

  • Скопируйте и вставьте приведенный выше код в локальный файл. Назовите его примерно так: test.html . Откройте его в браузере. Вы создали свой первый сайт!

→ Объяснение:

  • CSS означает Каскадная таблица стилей . Это позволяет применять определенные стили к элементам, созданным с использованием
    html
    ранее.
  • Что касается html, то создать визуализацию d3.js без базовых знаний по css невозможно. Если это новое для вас, проверьте этот учебник.

→ Пример:

→ Попробуйте:

  • Дайте классу inGreen к одному из пунктов p
  • Создайте новый класс для первого предложения документа. Измените размер шрифта на font-size: 20px в css.

→ Объяснение:

  • SVG означает Масштабируемая векторная графика . Это векторный формат изображения. По сути, это язык, который позволяет создавать фигуры с помощью кода.
  • Диаграмма d3.js на самом деле представляет собой набор из svg фигур, собранных вместе. Например, диаграмма рассеяния состоит из нескольких кругов, как показано ниже.
  • Этот документ галереи графов d3 демонстрирует различные формы, предлагаемые Svg.

→ Пример:

← Редактируй меня!
 

Это мое первое предложение

→ Попробуйте:

  • Измените аргументы в вызове svg , чтобы понять, какой функцией они управляют.
  • Попробуйте нарисовать фигуру другого типа, используя шпаргалку ниже
 

Пример источника


→ Объяснение:

  • JavaScript — одна из трех основных технологий Всемирной паутины. Он обеспечивает интерактивность на веб-страницах.
  • D3.js — это библиотека JavaScript, особенно полезная для визуализации данных. Он позволяет создавать, выбирать и изменять элементы.
  • В приведенном ниже примере d3 используется для выбора окружности с целью класса и изменения ее ширины штриха .
  • Пока не очень впечатляет. Но мы будем использовать тот же процесс, чтобы установить положение сотен кругов и получить диаграмму рассеяния.

→ Пример:

← Редактируй меня!
 

Это мое первое предложение

 

→ Попробуйте:

  • Измените непрозрачность круга с помощью стиля
    opacity
    , который находится в диапазоне от 0 до 1.


→ Объяснение:

  • Итак, браузер запускает код Html , Css и Javascript и показывает результат в виде веб-страницы.
  • Если что-то не так, выдаст уведомление в консоли .
  • Обычно вы можете открыть консоль с помощью правой кнопки мыши -> проверить элемент
  • Вы можете выводить данные в консоль, используя console.log("sometext") в вашем коде javascript
  • Это очевидно для людей, пришедших из веб-разработки. Но не для людей из других областей (Р?). Очень важно уметь отлаживать свой код.

→ Объяснение:

  • Создание диаграммы d3.js начинается с создания элемента svg . Этот элемент имеет ширину и высоту в пикселях.
  • Важно понимать, что верхний левый угол имеет координаты x=0 и y=0 . Нижний левый угол имеет координату x=0 и y=height . Верхний правый угол имеет координату .х=ширина и высота=0

→ Пример:

← Редактируй меня!
 
 

→ Попробуйте:

  • Измените координаты трех кругов, чтобы убедиться, что вы понимаете, как это работает


→ Объяснение:

  • Позиция элемента задается в пикселях . Но входной набор данных равен , а не .
  • Таким образом, нам нужна функция, которая переводит
    числовая переменная в позицию в пикселях. Это называется шкала
  • Если мои данные представлены в процентах, а моя область svg имеет ширину 400 пикселей. 0% → 0 пикселей. 100% → 400 пикселей. 50% → 200 пикселей.
  • Шкала всегда имеет домен (здесь от 0 до 100%) и диапазон (здесь от 0 до 400 пикселей)
  • Обычно масштаб по оси X называется x . Если вы запустите x(10) , d3 вернет позицию в px для этого значения

→ Пример:

← Редактируй меня!
 

→ Попробуйте:

  • Измените значения домена и диапазона , чтобы понять, как это работает.
  • Добавьте шкалу Y, чтобы перемещать круги вверх или вниз. Помните, что 0px находится сверху!


→ Объяснение:

  • D3 предлагает несколько функций для автоматического рисования оси .
  • Эти оси всегда рисуются поверх шкала . Эта шкала указывает , где должна располагаться ось, и
    какой диапазон
    она должна указывать.
  • Функция axisBottom() создает горизонтальную ось с делениями и метками внизу. axisLeft() будет использоваться позже для оси Y

→ Пример:

← Редактируй меня!
 
 

→ Попробуйте:

  • Изменить домен и диапазон значений, чтобы понять, как это работает.


→ Объяснение:

  • Положение оси часто необходимо регулировать .
    Например, ось X обычно располагается на нижней диаграмме.
  • Это стало возможным благодаря переводу . По сути, применяя .attr("transform", "translate(20,50)") к элементу с его переводом на 20 пикселей вправо и на 50 пикселей вниз.
  • Очень распространенная стратегия — применить перевод к общей области svg , создав небольшое поле вокруг диаграммы, не задумываясь об этом в остальной части кода. Важно понимать, как это работает, так как почти все диаграммы d3.js начинаются таким образом.

→ Пример:

← Редактируй меня!
 
 

→ Попробуйте:

  • Поиграйте со значениями поля, чтобы еще раз проверить, как это работает.
  • Удалить несколько строк в svg создание переменной.


→ Объяснение:

  • Привязка данных к элементам svg — это последний шаг, который нам нужен для завершения диаграммы рассеивания. На мой взгляд, это также самая сложная для понимания часть .
  • Всегда следует одним и тем же шагам:
    • svg : выберите область svg, в которой находится диаграмма
    • .selectAll("независимо") : выбрать все элементы, которые еще не были созданы, я знаю, что это странно.
    • .data(data) : укажите данные для использования.
    • .enter() : запустить цикл для данных. Следующий код будет применен к data[0] , data[1] и так далее.
    • .append("circle") : для каждой итерации добавлять круг.
    • .attr("cx", function(d){ return x(d.x) }) : возвращает положение круга размером x . Здесь d будет data[0] , тогда данные[1] и так далее. Таким образом, d.x — это значение x , а x(d.x) — соответствующая позиция в пикселях, найденная благодаря масштабу x .

→ Пример:

← Редактируй меня!
 
 

→ Примечание:

Вероятно, это самая сложная концепция в d3.js. И он используется почти в каждом графике. На самом деле это сила d3: привязка данных к элементам

Возможно, стоит прочитать больше на эту тему. Подробно проверьте d3 и Dashing d3.js.



Этот документ представляет собой очень-очень краткое введение в d3.js. Тем не менее, он описывает основные понятия, которые используются почти в каждой диаграмме.

Теперь вы, вероятно, готовы исследовать галерею. Для каждого раздела диаграммы есть очень простой пример, с которого можно начать.

Все диаграммы | Галерея графиков D3

Самая простая


Самая простая диаграмма с областями, которую вы можете сделать в d3.js. Сохранение только ядра код.

Двумерная гистограмма


Сгруппируйте двумерные точки в прямоугольные ячейки. Возможно благодаря плагин d3-rectbin .

Контурный график


Представление полигонов контура, вычисленное с использованием марширующих квадратов

Самая простая


Самая простая кольцевая диаграмма, которую вы можете сделать в d3.js. Сохранение только ядра код.

Наиболее простой


Самая простая тепловая карта, которую вы можете сделать в d3.js. Сохранение только основного кода.

Добавить всплывающую подсказку к тепловой карте


Добавить всплывающую подсказку, которая отображает точное значение ячейки и любые другие текст.

Готовая тепловая карта


Индивидуальная тепловая карта, включая эффект наведения, пользовательскую ось, заголовок, фантазии цветовая палитра, всплывающая подсказка и многое другое

Визуализация Отверженных


Интерактивная тепловая карта с возможностью переключения в групповом заказе

Самая простая


Самая простая диаграмма с областями, которую вы можете сделать в d3. js. Сохранение только ядра код.

Самый простой


Самая простая гистограмма, которую вы можете сделать в d3.js. Сохранение только основного кода.

Цвет определенной детали


Используйте простой оператор if-else , чтобы раскрасить часть гистограмма.

Также покажите, как добавить аннотацию в виде вертикальной полосы.

Двойная гистограмма


Двойная гистограмма может быть удобна для сравнения распределения 2 переменные.

Приятно видеть, как работает функция filter() .

Кнопка для управления размером корзины


Добавьте кнопку, которая управляет размером корзины. Хороший пример, чтобы научиться создавать функция обновления, которая также обновляет ось.

Добавить всплывающую подсказку


Полезно для получения порога диапазона каждого бара. Необходимо улучшить хотя.

Самый простой


Самая простая подсказка, которую вы можете сделать в d3.js.
Просто создайте одну всплывающую подсказку за один круг

HTML во всплывающей подсказке


Узнайте, как настроить всплывающую подсказку: вы можете применить к ней любой HTML-код!

Всплывающая подсказка, связанная с данными


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

Закрашивание


Как применять закрашивание на диаграмме для выбора точек.

Типы кнопок HTML


HTML изначально предлагает различные типы кнопок: вот описание их с соответствующим кодом.

Самый простой


Самый простой переход, который вы можете сделать в d3. js.
Он просто модифицирует атрибут ширины div с использованием d3.js, сохраняя только основной код.

Пропустить несколько переходов


Выполнить несколько переходов один за другим. Включает в себя различные атрибуты как цвет и ширина.

Самая простая


Самая простая линейная диаграмма, которую вы можете сделать в d3.js. Сохранение только ядра код.

Несколько групп


Узнайте, как представить несколько групп на линейном графике. Это требует сгруппируйте данные с помощью функции d3.nest.

Переход между входными данными


Добавить кнопку, позволяющую плавно переходить от одного набора данных к другому переход. Полезно, чтобы понять, как создать функцию update() .

Самый простой


Самая простая леденцовая диаграмма, которую вы можете сделать в d3. js. Сохранение только ядра код.

Поверните его горизонтально


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

Группы заказов


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

Кливленд точечный график


Разновидность леденца, где для каждого доступны 2 ряда данных группа.

Базовая анимация при загрузке


Точки начинаются с x=0 и затем занимают свое реальное положение.

Самый простой


Самый простой сетевой график, который вы можете сделать в d3.js. Сохранение только ядра код.

Формат ввода: JSON

Самый простой


Самая простая диаграмма параллельных координат, которую вы можете сделать в d3. js. Хранение только основной код.

Самая простая


Самая простая круговая диаграмма, которую вы можете сделать в d3.js. Сохранение только основного кода.

Самый простой


Самый простой график хребта, который вы можете сделать в d3.js. Сохранение только ядра код.

Выбор времени суток для занятий спортом


Красивый график линии хребта Эндрю Моллики, показывающий количество участников для нескольких видов спорта в течение дня.

Линия хребта или участок Радости


Реализация Майка Бостока.

Используйте d3.v5. это наблюдаемый ноутбуки -> еще лучше.

Самый простой


Самая простая диаграмма Санки, которую вы можете сделать в d3.js. Сохранение только ядра код.

Формат входных данных: Json

Поток производства энергии


Производство и потребление энергии в Великобритании в 2050 г. : поставки энергии находятся на слева, а требования справа

Самая простая


Самая простая диаграмма рассеяния, которую вы можете сделать в d3.js. Сохранение только ядра код.

Добавить всплывающие подсказки


Добавить всплывающую подсказку, которая появляется рядом с каждой точкой данных при наведении на нее курсора

Самая простая


Основная сгруппированная диаграмма рассеяния: каждая группа имеет свой цвет.

Выделение группы


Выделение группы точек при наведении курсора на один из ее членов

Анимация при запуске


Сделать так, чтобы точки появлялись одна за другой, используя другую задержку для каждый.

Кисть


Узнайте, как включить кисть и как изменить точки в области кисти

Обновить пределы оси X


Кнопка управляет верхним пределом оси X и запускает плавный переход до нового лимита

Первоначальная функция радиолокационной карты


Альваро Грейвс был первым, кто построил функцию для радара диаграмма.

Нажмите, чтобы посетить репозиторий github и найти несколько примеров.

Редизайн радарной диаграммы


Нади Бремер пересмотрела предыдущую диаграмму с более простым код и другой вид.

Basic из длинного ввода


Самая простая диаграмма с областями с накоплением, которую вы можете сделать в d3.js. Сохранение только основной код.

Формат ввода: длинный (аккуратный)

Basic from wide input


Еще одна базовая диаграмма с накоплением областей, созданная в d3.js.

Обратите внимание, что здесь формат ввода широкий (неаккуратный): каждая группа представлена ​​в определенном столбце.

Самый простой


Самый простой потоковый граф, который вы можете сделать в d3.js. Сохранение только ядра код.

Формат ввода: широкий (неаккуратный)

Самая простая


Самая простая древовидная карта, которую вы можете сделать в d3. js. Только один уровень иерархии представлен.

Ввод: формат csv

Скрипичная диаграмма


Здесь функция сглаживания используется для преобразования зеркальной гистограммы в сюжет для скрипки.

Вариант: без сглаживания


Вариант предыдущего графика без сглаживания

Вариация: показать шаги


Здесь функция curveStep используется для интерполяции значений: она показывает основная структура гистограммы.

Самый простой


Самый простой график для скрипки, который вы можете сделать в d3.js. Сохранение только ядра код.

Скрипка с дрожанием


Половина скрипки удалена, чтобы показать отдельные наблюдения. Дрожание используется, чтобы избежать наложения точек.

Диаграмма для скрипки


Краткий код для построения диаграммы для скрипки из 3 фиктивных массивов.

Автор записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *