Последние 5 лет я много программировал на JavaScript, от простого jQuery до Angular и React. Это было в основном для моих личных проектов, и, что удивительно, я не тратил слишком много времени на изучение JavaScript API Tableau, так почему бы не взглянуть. JavaScript API Tableau позволяет вам делать с Tableau несколько вещей:

  • Встраивайте визуализации данных из Tableau Server, Tableau Public и Tableau Online внутрь веб-страниц.
  • Отфильтруйте данные внутри визуализаций с помощью элементов управления HTML.
  • Выберите метки на панели инструментов.
  • Реагируйте на события в панели управления.
  • Экспорт панели мониторинга в различные выходные форматы.

В этой вводной статье мы стремимся научить вас работать в течение 10 минут, да, 10 минут. В других наших технических статьях мы установили много программного обеспечения, но в этом руководстве мы будем использовать онлайн-платформу для кодирования, поэтому, сказав это и сделав, давайте приступим к делу.

Примечание. Одним из моих побочных проектов в следующем году будет создание портала Tableau с открытым исходным кодом, просто для развлечения. Если есть программисты, отправьте мне сообщение.

Начиная

Давайте сначала начнем, открыв веб-браузер, перейдя на https://codepen.io и создав учетную запись.

CodePen – это интернет-сообщество для тестирования и демонстрации созданных пользователями фрагментов кода HTML, CSS и JavaScript. Он функционирует как онлайн-редактор кода и среда обучения с открытым исходным кодом, где разработчики могут создавать фрагменты кода, творчески названные «ручками», и тестировать их. Он был основан в 2012 году разработчиками полного стека Алексом Васкесом, Тимом Сабатом и фронтенд-дизайнером Крисом Койером. Его сотрудники работают в децентрализованной, удаленной среде, редко встречаясь лично. CodePen — одно из крупнейших сообществ веб-дизайнеров и разработчиков, демонстрирующих свои навыки кодирования, с примерно 330 000 зарегистрированных пользователей и 16,9 млн посетителей в месяц.

CodePen — это бесплатный онлайн-сервис, и я лично использую codepen для всех своих быстрых веб-фрагментов. Премиум-аккаунт имеет дополнительные функции, но эти премиум-функции не требуются для нашего руководства.

Создание вашей первой ручки

После того, как вы создали и подтвердили свою учетную запись, вы теперь сможете создавать веб-фрагменты в Интернете, называемые Pen, поэтому давайте начнем, перейдя к Создать (вверху слева- угол руки) и выберите Перо. Это откроет онлайн-редактор, который состоит из:

  • Редактор HTML — это место, где находится ваш HTML, структура вашей веб-страницы.
  • Редактор CSS. Здесь вы размещаете код каскадных таблиц стилей (CSS), который определяет внешний вид вашей веб-страницы.
  • Редактор JS. Здесь вы размещаете свой код JavaScript, чтобы добавить функциональность на свою веб-страницу.
  • Настройки. Откроется меню настроек, в котором вы можете добавить внешние файлы CSS, библиотеки JavaScript, определить препроцессоры и поведение пера.

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

Давайте настроим наши внешние библиотеки и зависимости:

  • Нажмите Настройки.
  • Нажмите CSS.
  • В поиске Добавить внешние таблицы стилей/ручки введите twitter-bootstrap и нажмите на результаты, чтобы добавить эту библиотеку в свою ручку. В этой статье мы добавили Bootstrap 4.1.3.
  • Нажмите JavaScript.
  • В поиске Добавить внешний скрипт/ручки введите jQuery и добавьте его в свою ручку. В этой статье мы добавили jQuery 3.3.1.
  • В одно из пустых полей скопируйте и вставьте следующее: https://public.tableau.com/javascripts/api/tableau-2.2.2.min.js. Это добавит библиотеку JavaScript Tableau в ваше перо.

и это все, мы настроили все, что нам нужно, поэтому теперь мы можем начать использовать API JavaScript Tableau для встраивания общедоступной панели инструментов Tableau.

Встраивание визуализации Tableau

Давайте начнем с ввода следующего в наш редактор HTML:

<div class="buttons">
   <button class="apply_RegionFilter btn" style="background-color: #a8dba2; ">Europe</button>
   <button class="apply_RegionFilter btn" style="background-color: #f5a8a3; ">Middle East</button>
   <button class="apply_RegionFilter btn" style="background-color: #afc8e3; ">The Americas</button>
   <button class="apply_RegionFilter btn" style="background-color: #d0bde0; ">Oceania</button>
   <button class="apply_RegionFilter btn" style="background-color: #ffc898; ">Asia</button>
   <button class="apply_RegionFilter btn" style="background-color: #cdb2ac; ">Africa</button>
   <button class="selectAll_RegionFilter btn btn-outline">All</button>
</div>
<div id="tableauViz"></div>

Мы здесь:

  • Создание нескольких кнопок с помощью класса Bootstrap btn.
  • Настройка цвета кнопок в соответствии с цветами визуализации данных.
  • Создание пустого div с идентификатором tableauViz.

Теперь давайте добавим небольшой пользовательский стиль, добавив следующее в наш Редактор CSS:

.btn {
   margin: 5px;
}

Обратите внимание на самый интересный фрагмент кода, но мы даем нашим кнопкам небольшой запас.

Наконец, давайте введем следующее в наш редактор JS:

$( document ).ready(function() {
   var viz, workbook, activeSheet; 
   var placeholderDiv = document.getElementById("tableauViz");
   var url = "https://public.tableau.com/views/WorldIndicators/GDPpercapita";
   var options = {
      width: "100%",
      height: "600px",
      hideTabs: true,
      hideToolbar: true,
      onFirstInteractive: function () {
         workbook = viz.getWorkbook();
         activeSheet = workbook.getActiveSheet();
      } 
   };
   viz = new tableau.Viz(placeholderDiv, url, options);
   $(".apply_RegionFilter").click(function() {
      activeSheet.applyFilterAsync(
         "Region",
         $(this).text(),
         tableau.FilterUpdateType.REPLACE
      );
   });
   $(".selectAll_RegionFilter").click(function() {
      activeSheet.clearFilterAsync("Region");
   });
});

Теперь давайте немного углубимся в это:

  • $(document).ready() происходит из jQuery и выполняет код после того, как объектная модель документа (DOM) загружена и готова к манипулированию.
  • document.getElementById("tableauViz") возвращает элемент div в HTML, мы разместим здесь нашу визуализацию Tableau.
  • Мы устанавливаем нашу переменную URL так, чтобы она указывала на общедоступную визуализацию Tableau, эта переменная используется в официальном руководстве по JavaScript API Tableau, так почему бы не использовать ее повторно.
  • Мы устанавливаем переменную options, которая описывает, как будет отображаться наша визуализация. У вас есть полный список вариантов здесь: https://onlinehelp.tableau.com/current/api/js_api/en-us/JavaScriptAPI/js_api_ref.htm, найдите VizCreateOptions.
  • Затем мы вызываем new tableau.Viz(placeholderDiv, url, options), который создает визуализацию Tableau, указанную в URL-адресе, с указанными параметрами и где идентификатором div является tableauViz.
  • $(“.apply_RegionFilter”).click() устанавливает действие для кнопок с помощью класса apply_RegionFilter. Это действие берет текст кнопки и применяет его в качестве фильтра к региону.
  • $(“.selectAll_RegionFilter”).click() устанавливает действие для кнопки с помощью класса selectAll_RegionFilter. Это действие очищает выбор фильтра.

Если все сделано правильно, теперь вы должны увидеть что-то вроде следующего:

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

  • Перемещение между вкладками.
  • Выберите отметки.
  • Выберите листы.
  • Слушайте события.
  • Доступ к функциям панели инструментов.

Мою ручку можно найти здесь: https://codepen.io/thoang1000/pen/XobNma

Резюме

В этом уроке мы охватили большое количество земли. Мы посмотрели:

  • Настройка нашей учетной записи codepen.
  • Создание пера и добавление нескольких библиотек:
  • Bootstrap для внешнего вида компонента.
  • jQuery для взаимодействия с нашим HTML.
  • Библиотека API Tableau.
  • Создали наше первое приложение Pen и Javascript API, которое:
  • Встраивание визуализации Tableau Public в веб-страницу.
  • Установка параметров для визуализации.
  • Применение фильтров к визуализации.

Надеюсь, вам всем понравилась эта статья так же, как мне понравилось ее писать. Дайте мне знать, если у вас возникнут какие-либо проблемы с запуском и запуском, и, как обычно, оставьте комментарий ниже или свяжитесь со мной в Твиттере @Tableau_Magic.

Подробнее о Tableau JavaScript API читайте на официальном сайте: https://onlinehelp.tableau.com/current/api/js_api/en-us/JavaScriptAPI/js_api_whats_new.htm