Содержание урока по Qlik Sense
picasso.js — это библиотека диаграмм с открытым исходным кодом, предназначенная для создания настраиваемых интерактивных мощных визуализаций на основе компонентов.
Cookbook for PicassoJS Qlik Sense Extensions – School of Picasso JS
Компоненты — это визуальные стандартные блоки, из которых состоит диаграмма. Комбинируя их в различных формах, можно создать практически любую диаграмму. Гистограмма, например, состоит из гистограммы, непрерывной и дискретной осей. Добавьте линейный слой, и у вас есть комбинированная диаграмма. Хотите линейную диаграмму с четырьмя осями? – Не проблема.
picasso.js предоставляет систему плагинов, которая позволяет легко расширять существующие возможности — вы можете зарегистрировать и использовать пользовательские компоненты, которые хорошо сочетаются с существующими, создать новую тему, предоставить свой собственный анализатор данных или даже зарегистрировать пользовательский рендерер, который выводит эскизы. графика. picasso.js использует D3.js для многих своих функций и стремится предоставить сообществу D3 возможность перепрофилировать и легко интегрировать свою работу в picasso.js.
Помимо основных шаблонов взаимодействия, интерактивность в виде закрашивания и связывания предоставляется из коробки — перетащите диапазон на линейной оси, чтобы выделить все значения, попадающие в этот диапазон, или используйте инструмент лассо, чтобы выделить группу точек. Затем очищенные значения можно программно связать и выделить в другом экземпляре диаграммы.
Используя относительные единицы и уникальный алгоритм компоновки, вы можете обеспечить отзывчивость составленных диаграмм. Та же конфигурация может использоваться для полноразмерной диаграммы, содержащей детали, аннотации и т. д., что и для версии спарклайна — компоненты автоматически изменяются или удаляются, если они не подходят.
Внешний вид меток, линий, форм, цветовых палитр и т. д. можно изменить, а новую тему создать, просто изменив несколько базовых переменных, которые управляют внешним видом, включая плагины.
Picasso.js – это open-source visualization framework, библиотека диаграмм, оптимизированная для создания интерактивных визуализаций для продуктов линейки Qlik.
Picassojs – это библиотека визуализации от Qlik, которая фокусируется на создании визуализаций с помощью компонентно-ориентированного подхода и (разумно) быстро реагирует на запросы. Qlik использует Picasso.js для создания визуализаций, которые поставляется вместе с пакетом продуктов Qlik Sense.
Picasso.js базируется на D3.js, при этом все визуализации описываются через JSON.
Официальная дока
Другие публикации и инструменты для построения визуализации с помощью Picasso.JS
picasso.js и плагины picasso-plugin-hammer доступны picasso-plugin-q в общедоступном реестре npm в виде пакетов npm и могут быть установлены либо через npm, либо через импорт скрипта.
Самый простой способ загрузить модуль — из CDN, например jsdelivr:
<script src="https://cdn.jsdelivr.net/npm/picasso.js" crossorigin></script>
При импорте с использованием тега script он добавляет переменную picassoв глобальное пространство имен.
Для производства рекомендуется использовать определенную версию, чтобы избежать сюрпризов от более новых или неработающих версий API:
<script src="https://cdn.jsdelivr.net/npm/picasso.js@1.0.0" crossorigin></script>
Если вы создаете свой собственный веб-проект, используя Webpack, Rollup, Parcel или что-то подобное, вы можете установить пакет с помощью npm:
npm install picasso.js
или yarn:
yarn add picasso.js
а затем использовать его:
import picassojs from 'picasso.js';
Примечание. В этом руководстве предполагается, что у вас есть базовые знания HTML, JS, CSS и git в веб-разработке.
Создайте новый HTML-файл с некоторыми базовыми настройками и включите picasso.js пакет:
<!DOCTYPE html>
<html>
<head>
<title>My picasso.js page</title>
<script src="https://unpkg.com/picasso.js"></script>
<style>
html,
body {
margin: 0;
padding: 0;
height: 100%;
}
#container {
height: 100%;
position: relative;
}
</style>
</head>
<body>
<div id="container"></div>
<script>
/* PLACE CODE HERE */ </script>
</body>
</html> В теге script инициируйте экземпляр диаграммы Picasso.js:
<script>
picasso.chart({
element: document.querySelector('#container'), // This is the element to render the chart in
data: [
{
type: 'matrix',
data: [
['Month', 'Sales', 'Margin'],
['Jan', 1106, 7],
['Feb', 5444, 53],
['Mar', 147, 64],
['Apr', 7499, 47],
['May', 430, 62],
['June', 9735, 13],
['July', 5832, 13],
['Aug', 7435, 15],
['Sep', 3467, 35],
['Oct', 3554, 78],
['Nov', 5633, 23],
['Dec', 6354, 63],
],
},
],
settings: {
scales: {
x: { data: { field: 'Margin' } },
y: { data: { field: 'Sales' } },
},
components: [
{
// specify how to render the chart
type: 'axis',
scale: 'y',
layout: {
dock: 'left',
},
},
{
type: 'axis',
scale: 'x',
layout: {
dock: 'bottom',
},
},
{
type: 'point',
data: {
extract: {
field: 'Month',
props: {
x: { field: 'Margin' },
y: { field: 'Sales' },
},
},
},
settings: {
x: { scale: 'x' },
y: { scale: 'y' },
size: function () {
return Math.random();
},
},
},
],
},
});
</script> Теперь вы должны увидеть очень простой пузырьковый график:
Большинство следующих примеров — это reactive notebooks — мощный способ создания интерактивных документов.
Коллекция Qlik picasso.js на Glitch содержит несколько примеров кода, которые вы можете запустить, отредактировать и встроить на свою веб-страницу. Они были разработаны с использованием React.
Функция picasso.chartсоздает и отображает диаграмму.
picasso.chart(definition)
definition Объект element HTMLЭлемент. Элемент для отображения диаграммы.data Объект. Данные для рендеринга. Больше .settings Объект. components Множество. Больше .scales Объект (необязательно). Масштабы, используемые при рендеринге. Больше .formatters Объект (необязательно). Средства форматирования, на которые можно ссылаться из других компонентов. Больше .strategy Объект (необязательно). Поведение макета и отзывчивость. Больше .created Функция (необязательно). Крюк жизненного цикла.beforeMount Функция (необязательно). Крюк жизненного цикла.mounted Функция (необязательно). Крюк жизненного цикла.beforeRender Функция (необязательно). Крюк жизненного цикла.beforeUpdate Функция (необязательно). Крюк жизненного цикла.updated Функция (необязательно). Крюк жизненного цикла.beforeDestroy Функция (необязательно). Крюк жизненного цикла.destroyed Функция (необязательно). Крюк жизненного цикла.Используйте обработчики жизненного цикла для добавления и удаления возможностей при возникновении определенных событий.
Если вы использовали такие фреймворки, как React или VueJS, вы знакомы с концепцией жизненного цикла. Есть в основном три варианта использования:
Это запускает события жизненного цикла в следующем порядке:
created -> beforeRender -> beforeMount -> mounted
Это запускает события жизненного цикла в следующем порядке:
beforeUpdate -> beforeRender -> updated
Это запускает события жизненного цикла в следующем порядке:
beforeDestroy -> destroyed
Вызывается при создании диаграммы. Используйте для инициализации переменных состояния, которые должны быть привязаны к экземпляру диаграммы.
picasso.chart({
created() {
this.dataPage = 1;
},
}); Вызывается до того, как диаграмма была смонтирована. Используйте для установки начального состояния, которое может не понадобиться диаграммам, отображаемым на сервере. Этот хук только на стороне клиента.
picasso.chart({
beforeMount() {
this.clickCount = 0;
},
}); elementHTMLElement — элемент, в котором была отображена диаграмма.Вызывается после того, как диаграмма была смонтирована. Используйте для привязки пользовательских обработчиков событий или других операций, требующих элемента. Этот хук только на стороне клиента.
picasso.chart({
mounted(element) {
// Bind a tap listener using the Touche library (https://github.com/stoffeastrom/touche)
Touche(element).tap({
options: {
areaThreshold: 5,
},
end: function (e, data) {
console.log('tap');
},
});
},
}); Вызывается перед визуализацией диаграммы. Используйте для инициализации переменных состояния, которые должны быть привязаны к экземпляру диаграммы.
picasso.chart({
beforeRender() {
this.dataPage = 1;
},
}); Вызывается перед обновлением диаграммы. Используйте для инициализации переменных состояния, которые должны быть привязаны к экземпляру диаграммы.
picasso.chart({
beforeUpdate() {
this.dataPage = 1;
},
}); Вызывается при обновлении диаграммы. Используйте для инициализации переменных состояния, которые должны быть привязаны к экземпляру диаграммы.
picasso.chart({
updated() {
this.dataPage = 1;
},
}); Вызывается до того, как диаграмма была уничтожена. Используйте для отмены привязки пользовательских прослушивателей событий и выполнения работы по очистке, требующей элемента. Этот хук только на стороне клиента.
picasso.chart({
beforeDestroy() {
this.dataPage = 1;
},
}); Вызывается, когда диаграмма была уничтожена. На данный момент все обработчики событий не связаны, и ссылки на элементы недоступны. Этот хук только на стороне клиента.
Обновите диаграмму новыми data и/или settings. Запускает обновления всех компонентов диаграммы.
const chartInstance = picasso.chart({
/* ... */});
chartInstance.update({
settings: newSettings,
data: newData,
}); Пример
const chartInstance = picasso.chart({
element: document.getElementById('chart-container'),
data: { ... },
settings: {
scales: {
x: {
data: { extract: { field: "Products" } }
},
y: {
data: { extract: { field: "Year" } }
}
},
components: [{
type: "point",
settings: {
fill: 'red'
}
}]
},
created: function() {
console.log('Chart was created');
},
mounted: function() {
console.log('Chart was mounted');
}
});
chartInstance.update({
data: { /* . */ }
}); Обратите внимание, что вы не должны использовать функции стрелок, чтобы позволить
thisконтексту внутри методов быть привязанным к экземпляру.
Данные в picasso.js обычно передаются сверху вниз: экземпляру диаграммы предоставляется один или несколько источников данных различных типов; затем каждый компонент может использовать эти источники данных или их части.
Шкалы (Scales) – неотъемлемая часть большинства визуализаций, и picasso.js поставляется в комплекте с парой из них.
Шкалы в picasso.js представляют собой расширенные шкалы d3, основное отличие которых заключается в более тесной интеграции с данными.
Компоненты составляют визуальные части диаграммы и обычно включают в себя оси, линии сетки и точки данных, закодированные различными способами.
Макет док-станции — это механизм, который управляет расположением различных компонентов и визуализацией компонента или нет, в зависимости от доступного пространства, то есть от скорости отклика.
Существует 5 различных областей макета, причем centerобласть является основной. Обычно именно там располагаются визуальные компоненты. С каждой стороны от центральной области есть еще одна область, в которой можно расположить (закрепить) компонент. Они обозначаются как top, bottom, leftи right.
Большинство компонентов должны обрабатывать любую из 5 различных областей, но может быть более целесообразно, чтобы некоторые компоненты располагались в основном либо в центре, либо по бокам.
Чистка в компоненте обрабатывается двумя способами: trigger (триггер) и consume (потребление).
Взаимодействия предоставляют API для привязки событий к диаграмме Пикассо декларативным способом.
API форматирования позволяет связывать средства форматирования двумя способами: либо неявно из поля данных, либо явно, ссылаясь на средство форматирования в компоненте.
Примечание. Применение форматирования зависит от каждого компонента.
Введение Иногда при создании расширения Qlik Sense вам необходимо получить доступ к системным данным. Это…
// Команда, которая будет запускаться в Powershell на сервере LET vPowershellCommand = 'Get-ChildItem -Path ''lib://Data/QVDs''…
Как построить диаграмму Control Chart со скользящим средним в Qlik Sense? В этой статье будет…
Как сделать чередование цвета в строках прямой таблицы Qlik Sense? Если порядок строк неважен, то…
Обзор В этой серии руководств мы собираемся создать расширение Qlik Sense с использованием Nebula.js и…
Создание расширенного расширения визуализации с использованием Qlik Nebula.js и D3.js В моем последнем посте я рассказал…
This website uses cookies.