Автор оригинала: FreeCodeCamp Community Member.
Praven Dubey
Plotly.js Библиотека идеально подходит для приложений JavaScript, которые используют графики и диаграммы. Есть несколько причин рассмотреть возможность использования его для вашего следующего проекта визуализации данных:
- Plotly.js использует как D3.js (SVG), так и WebGL для графического рендеринга
- Plotly.js – это «все в одном пакете» с модулями D3.js и Stack.gl
- Работает с JSON Schema
- Plotly.js поддерживает базовые, статистические, научные, финансовые и картографические карты.
Также более 9000 звезд на открытом исход Github является сильным показателем своего роста сообщества.
Использование и примеры
Давайте смотрим на настройку и несколько примеров для лучшего и практического понимания.
Во-первых, включите файл с его CDN.
Далее, давайте построим небольшой график, который показывает номера и их квадраты:
Код для генерации этого графика ниже:
Основная настройка может быть выполнена с включением файла, элементом DOM и сценарием для построения.
После включения библиотеки Plotly.js в <он
AD>, мы определили Пустой
Pultly.new ()
Рисует новый участок в используется
Mydiv. Вход будет быть
Обратите внимание на включение Режим
в трассировке переменной. Это может быть любая комбинация «Линии»
, «Маркеры»
, «Текст»
присоединился к "+"
Или "Нет"
Отказ
Примеры включают «Линии»
, «Маркеры»
, «Линии + маркеры»
, «Линии + маркеры + текст»
, "Нет"
Отказ
Здесь мы использовали Маркеры
Отказ Обратите внимание, что вы получаете только очки, отмеченные в координатах графика и Не видите подключенную линию по всем точкам.
Сюжет несколько строк, просто добавляя значения в данные
Переменная:
Легенда На графике связано с графически отображаемыми данными в области графика графика.
На данный момент у нас нет ярлыков, а легенды выглядят:
Давайте обновим их с помощью таких параметров, как текст
, TextFont
, Текстовоеpostion
Для настройки наших данных этикетки. Они должны быть переданы отдельными наборами данных.
Расположение других визуальных атрибутов, таких как заголовок и аннотации, будут определены в объекте, обычно называемом Макет
Отказ
К настоящему времени мы видели некоторые примеры строки, давайте быстро построим гистограмму, используя «Бар»
как тип.
var data = [{ x: ['Company X', 'Company Y', 'Company Z'], y: [200, 140, 230], type: 'bar'}];
Plotly.newPlot('myDiv', data);
Вы также можете изменить Тип
В приведенных выше данные, показанные для продуктов и мобильных устройств, изменяя разброс
к бар
Отказ
var trace = { x: [1.5, 2.5, 3.5, 4.5, 5.5], y: [100, 10, 70, 150, 40], mode: 'lines+markers+text', type: 'bar', name: 'Alpha', text: ['Product A', 'Product B', 'Product C', 'Product D', 'Product E'], textfont : { family:'Times New Roman' }, textposition: 'top', marker: { size: 12 } };
Вот один пример, который меняет непрозрачность бара:
var trace2 = { x: ['Alpha', 'Beta', 'Gamma'], y: [100, 200, 500], type: 'bar', name: 'Opacity Example', marker: { color: 'rgb(204,204,204)', opacity: 0.5 }};
Мы создали несколько основных рассеяний и разговаривали о нескольких вариантах, которые могут быть легко настраиваться, чтобы получить разные вариации того же графика.
Давайте продолжим построение набора данных Meteor используя только несколько строк кода.
Я использую набор данных из Github Bcdunbar И постараюсь сломать весь процесс на несколько шагов.
Давайте начнем.
Шаг 1. Первоначальная настройка
Добавить Platly.js в вашем файле HTML. Это включает в себя файл JavaScript, пустой Div
Элемент и заполнитель для скриптов.
Шаг 2. Набор данных
Поскольку наш набор данных находится в формате CSV, мы можем использовать Plotly.d3.csv
Отказ Он внутренне читает данные CSV из вызова AJAX.
Код обертки для построения:
Plotly.d3.csv('https://raw.githubusercontent.com/bcdunbar/datasets/master/meteorites_subset.csv', function(err, rows){
Plotly.plot('mapDiv', data, layout);
});
Шаг 3. Токен доступа
Получите токен доступа Mapbox, мы будем использовать из здесь Отказ
Pultly.plot
нуждается в двух главных вещах: данные
и Макет
что определяет, какие данные будут использоваться данные и как оно должно быть нанесено на экран.
Шаг 4. Макет карты
var layout = { title: 'Demonstration of Meteorite Landing using Plotly.js', font: { color: 'white' }, dragmode: 'zoom', mapbox: { center: { lat: 38.03697222, lon: -90.70916722 }, style: 'light', zoom: 2 }, paper_bgcolor: '#191A1A', plot_bgcolor: '#191A1A', showlegend: true, annotations: [{ x: 0, y: 0, text: 'NASA', showarrow: false }]};
Обратите внимание, что мы используем Mapbox
Чтобы определить все конфиги карты, включая центр, уровень масштабирования, цвет и легенды.
Далее добавьте токен, который мы создали на шаге 3 с помощью:
Plotly.setPlotConfig({ mapboxAccessToken: 'your token here'});
Шаг 5. Данные процесса
Последнее, что нам нужно, это добавить наш объект данных из источника CSV:
var classArray = unpack(rows, 'class'); var classes = [...new Set(classArray)];
function unpack(rows, key) { return rows.map(function(row) { return row[key]; }); }
var data = classes.map(function(classes) { var rowsFiltered = rows.filter(function(row) { return (row.class === classes); }); return { type: 'scattermapbox', name: classes, lat: unpack(rowsFiltered, 'reclat'), lon: unpack(rowsFiltered, 'reclong') }; });
Теперь у нас есть данные, макет, токен и карта ... Вот конечный результат:
Это была демонстрация построения с пошаговым подходом на построение набора данных карты с использованием Plotly.js. Вы можете найти много примеров на Сюжер Документация для начала.
Надеюсь, это дало вам хорошее введение в заговорную JS.
Обязательно бросить свой отзыв ниже, и код для этого можно найти на моем Github Отказ