Обновленная версия тренинга по визуализации данных на географических картах. Добавлен пример создания картограмм на основе собственных полигонов с границами географических областей
2. План занятия
• Визуализация линейных объектов
• Создание картограмм с произвольными областями
• Визуализация сети распределения
• Использование изображений в качестве подложки для карты
• Интерактивность
• Пользовательская база данных для геокодирования
2
3. Файлы данных
• Файлы данных для выполнения тренинга можно загрузить по
ссылке: https://yadi.sk/d/aDo7AnGUdVXvk
3
5. Файл данных
• Изучите содержимое файла metro_stations.xlsx в Excel
• Источник данных – Википедия:
https://ru.wikipedia.org/wiki/Список_станций_Московского_метрополитена
– На листе Станции содержится список станций московского метро с указанием
координат и характеристик.
– На листе Линии содержится список линий метрополитена и их цветовые обозначения
на схеме метро
• Создайте новую рабочую книгу:
metro_stations.twbx
• Закройте файл в Excel и создайте подключение
к данным на листе Станции в Tableau (можно
просто перетащить файл в окно Tableau)
• При импорте нужно указать географическую
роль – Latitude и Longitude для полей
Широта и Долгота
5
6. Визуализация линейных объектов
• Вспомним, что все линейные объекты на картах изображаются с помощью
ломаных линий (возможно, с очень большим числом сегментов, чтобы
обеспечить гладкость)
• Для построения ломаной линии нужны 4 поля: координаты каждого узла,
порядковый номер узла, код линии. Порядковый номер узла должен быть
числового типа, либо датой/временем. Код линии может быть любого
дискретного типа
6
7. Данные о маршрутах линий метрополитена
• На рисунке показан фрагмент таблицы с данными о станциях (часть строк
и столбцов скрыта)
• В таблице для каждой станции указаны координаты, номер и название
линии, порядковый номер на линии
• Обратите внимание, что начальный и конечный узел ломаной линии не
соединяются автоматически, поэтому запись о станции Парк культуры
продублирована, чтобы кольцевая линия получилась замкнутой
7
8. Визуализация линий метро на карте
• Числовые поля Линия и Порядковый номер на линии по умолчанию добавлены в список фактов.
Сделайте их измерениями, перетащив в список Dimensions
• Добавьте координаты станций в область строк и столбцов
• Добавьте название линии в область цвета (Color)
• Поменяйте тип графического элемента
на панели Marks на Line и добавьте
измерение Порядковый номер на линии
в область Path
• Щелкните по области Color и включите
отображение маркеров, чтобы показать
расположение станций, там же установите
полупрозрачность (Transparency)
• В контекстном меню цветовой легенды
выберите Edit Colors… и назначьте линиям
привычные цвета (см. лист Линии в Excel)
• Задайте имя листа в книге Tableau - Линии
8
9. Добавление вычисляемых полей
• Интересно помимо расположения станций отразить на карте их
характеристики – например, возраст и глубину залегания.
Чтобы рассчитать возраст, можно воспользоваться функцией DateDiff()
• Чтобы создать вычисляемые поля, выберите команду
Create Calculated Field… в контекстном меню области данных
• Формулы для вычисления полей можно печатать с клавиатуры, или
выбирать их элементы, щелкая по спискам полей и функций
• Для удобства поиска нужных функций, используйте категории
функций (Date)
• Краткая подсказка по функции выводится здесь же
• Глубина в наборе данных указана как отрицательное
число. Для визуализации удобнее использовать
противоположное ей число. Создайте поле Глубина2,
вычисляемое по формуле: - Глубина
9
10. Визуализация глубины залегания станций
• Продублируйте созданный ранее лист Линии. Назовите копию Глубина залегания станций
• Перетащите поле Глубина2 в область размера (Size)
• Зажав правую кнопку мыши, перетащите поле Название станции в область метки (Label). Выберите в
появившемся диалоге (Drop Field) вариант ATTR(Название станции).
– Измерение Название станции преобразуется в атрибут. В отличие от измерений, атрибуты не
используются для группировки данных. Если не делать такое преобразование, то вся сеть разделится на
отдельные станции
• Щелкнув по области метки (Label), задайте, чтобы метки выводились только для подсвеченных (Highlighted)
объектов. Запретите перекрытие меток с другими объектами (Allow labels to overlap other marks)
• Результат показан на рисунке. Проверьте, чтобы в области цветовой легенды был включен режим подсветки
для всех объектов того же цвета: по клику на станции должна выбираться вся линия
10
11. Визуализация возраста станций
• Продублируйте предыдущий лист и назовите копию: Возраст станций
• В области Size замените поле Глубина2 на Возраст
11
12. Визуализация развития метрополитена
• Чтобы можно было видеть, как росла сеть метрополитена, добавим фильтр по году открытия станции
• Перетащите поле Дата открытия в область фильтра (Filters). Выберите Year в появившемся окне Filter
Field. В окне настройки фильтра пока можно ничего выбирать, нажмите OK
• В контекстном меню поля Дата открытия в области фильтров переключите тип дат на непрерывные годы
(Year в нижней части меню)
• Появится окно настройки фильтра. Выберите здесь фильтрацию по дате окончания (Ending date). Пока не
меняйте порог фильтра
12
13. Добавление быстрого фильтра
• В контекстном меню поля Дата открытия в области фильтров выберите Show Quick Filter
• Попробуйте менять порог фильтрации, вы увидите, как росла со временем сеть московского метро
• Слайдер быстрого фильтра можно двигать с помощью стрелок на клавиатуре (нажатие клавиши Shift
позволяет изменять порог более плавно)
13
14. Настройка карты-подложки
• В предыдущем тренинге мы уже добавляли новые источники карт для подложки. Теперь мы рассмотрим,
что можно сделать с помощью настройки штатных карт Tableau
• В меню Map выберите команду Map Layers…
• Область данных заменится
на окно форматирования карты.
Здесь можно:
– выбрать стиль карты –
темный, светлый, стандартный;
– осветлить подложку (washout),
чтобы пестрые цвета
не отвлекали пользователя
от ваших данных
– включить или отключить
некоторые элементы
карты-подложки: границы,
названия, дорожную сеть…
– некоторые типы карт (в основном,
на территорию США) позволяют
накладывать слои со
статистическими данными
по регионам
• С помощью форматирования,
постарайтесь получить вид
карты-подложки как на рисунке
14
16. Расширение встроенных областей
• Для создания картограмм необходимы данные
о границах географических областей, которые
в дальнейшем будут использоваться для отображения
различных показателей. В Tableau на данный момент
содержатся границы стран и крупных регионов.
Детализация до более мелких территорий – областей,
почтовых индексов доступна лишь для некоторых
стран. Кроме того, данные о границах государств
могут не соответствовать современным реалиям
• Если необходимо визуализировать показатели мелких
территорий, или интересующие объекты в принципе
не совпадают с границами административного деления,
то требуется загружать в Tableau собственные данные,
отражающие границы объектов
• Про использование полигональных карт для визуализации написано здесь
16
17. Подготовка данных о границах областей
• Для выполнения заданий этого тренинга данные о границах областей в нужном
формате уже подготовлены, ничего специально делать не нужно
• Данная информация понадобится вам, если вы хотите сделать полигоны для
карты самостоятельно:
– Для самостоятельной подготовки данных потребуется обработка с помощью геоинформационных
систем. Исходные данные, как правило, находятся в формате ESRI shapefile. Хороший источник
открытых геоданных – сообщество GISlab. Например, исходные данные по АТД Москвы взяты
отсюда. Ознакомьтесь со списком других проектов GISlab
– Tableau не может читать напрямую шейп-файлы, поэтому для загрузки их потребуется
преобразовать в таблицы координат для вершин полигонов. Как правило, требуется также
упрощение границ, чтобы уменьшить объем данных и увеличить скорость визуализации. На данный
момент наиболее удобным способом преобразования геоданных является использование онлайн-
конвертера Tableau Shapefile To Polygon Converter, разработанного Craig Bloodworth и доступного в
галерее Alteryx
– О том, как самостоятельно преобразовать геоданные в табличный формат, можно почитать в этой
статье базы знаний Tableau (здесь используется открытая ГИС – QGis, которую можно установить, как
описано здесь)
17
18. Визуализация: полигоны
• Полигоны в Tableau рисуются так же, как и линейные объекты – по точкам, и
отличаются от них лишь тем, что их граница замкнута и есть заливка
• Для построения полигона линии нужны 4 поля: координаты каждого узла,
порядковый номер узла, код фигуры. Порядковый номер узла должен быть
числового типа, либо датой/временем. Код фигуры может быть любого
дискретного типа
18
19. Подключение к данным
• Для выполнения задания вам потребуются два файла: Moscow.tde (границы
районов) и Moscow_Demography.xlsx (данные о демографии), доступные на
Яндекс Диске
• Создайте новую рабочую книгу: moscow.twbx
• Создайте подключение к файлу Moscow.tde.
Обратите внимание, что для полей Latitude и Longitude уже
установлены соответствующие географические роли
• Перейдите к листу визуализации и перетащите поля:
PointID, PolygonID, SubPolygonID в список измерений
• Измените имя листа на Новая Москва
19
20. Визуализация границ АО
• Переключите тип визуализации на Polygon (в панели Marks). Перетащите поле с
кодами точек в область Path, а коды полигона и суб-полигона – в детали
• После этого добавьте широту и долготу в область строк и столбцов, а название
административного округа – в цвет
20
21. Подключение к данным о демографии
• Для создания картограммы, продублируйте лист и назовите копию «Демография
Москвы». В дальнейшем работайте с этим листом
• Добавьте еще одно подключение – к файлу Moscow_Demography.xlsx
• В результате в списке источников данных должны отображаться два подключения
21
22. Поля для объединения источников
• Для наложения на карту данных о демографии,
необходимо объединить (blend) данные из двух
источников по общим ключевым полям
• Выполните команду: Data/Edit Relationships…
• Выберите в качестве основного источника набор
данных с границами (Moscow Extract)
• Установите между наборами данных связь по ключевым полям – Name (в файле с
границами) и District (в файле с данными о демографии)
22
23. Создание картограммы численности населения
• Поскольку мы используем объединение источников (data blending),
необходимо чтобы ключевое поле было одним из измерений,
используемых в визуализации. Добавьте поле NAME в детали.
Поле NAME_AO, которое было ранее добавлено в область цвета,
необходимо убрать
• В списке подключений выберите подключение к файлу
с демографическими данными
• Перетащите поле TotalPopulation в область цвета. Результат показан на
следующем слайде
23
25. Картограмма доли населения моложе 18 лет
• Создайте вычисляемое поле для расчета доли населения моложе 18 лет и
визуализируйте эту долю. В каких районах больше всего молодежи?
• Используя панель Format и редактор текста всплывающих подсказок,
добейтесь вида подсказки, показанного на рисунке
25
27. Файл данных
• Создайте новую книгу Tableau – distribution network.twbx
• Создайте подключение к файлу distribution_network.csv
– Укажите для поля Name тип данных: String
– Выберите режим подключения: Extract
• Основные поля для визуализации сети: координаты склада/магазина (данные уже геокодированы),
Маршрут (каждое сочетание склад – магазин имеет свой уникальный номер маршрута), Порядковый
номер (1 – склад, 2 – магазин). Также с маршрутом связаны несколько характеристик – поток (FlowTrucks,
FlowPallets), коэффициент загрузки машин (TruckUtilization)
• Size – это характеристика склада (размер арендуемой площади), он продублирован для всех маршрутов,
которые начинаются на данном складе
• MaxDays – это максимально допустимое число дней на поставку для данного магазина
27
28. Названия объектов
• Сейчас для складов и магазинов названия содержатся в разных столбцах
• Поскольку подписи для объектов на карте должны формироваться на основе одного поля, необходимо
создать вычисляемое поле Название, которое будет для всех пунктов отправления (порядковый номер = 1)
содержать название склада, а для всех пунктов назначения (порядковый номер = 2) – название магазина
28
29. Визуализация размещения объектов
• Переименуйте рабочий лист в Сеть распределения
• Сделайте поля Маршрут и Порядковый номер измерениями
• Добавьте координаты в область строк и столбцов (Rows/Columns)
• Добавьте Название в область метки (Label)
• Переключите тип графического элемента (Marks) на Shape и добавьте Порядковый номер в область
фигуры (Shape) и цвета (Color)
• Выберите для складов (порядковый номер = 1) красные треугольники с заливкой, а для магазинов –
зеленые круги с заливкой (в контекстном меню легенды для фигур и цветов)
• Задайте для поля Size агрегирующую функцию по умолчанию – AVG (среднее) и перетащите это поле в
область размера (Size)
29
30. Визуализация товарных потоков
• Продублируйте (Ctrl-перетаскивание) поле Latitude в области строк (Rows)
• В области Marks откройте карточку для первого поля Latitude (соответствует верхней диаграмме)
• Удалите все поля из области Marks
• Переключите тип графического элемента на Line
• Добавьте поле Маршрут в детали (Detail), а поле Порядковый номер – в Path.
• Добавьте поле FlowTrucks в область размера (Size).
• Выберите темно-синий цвет для линии (Color)
• Совместите диаграммы, выбрав в контекстном меню поля Latitude режим Dual Axis
30
32. Файл данных
• Создайте новую рабочую книгу japan_subway.twbx
• Создайте подключение к источнику данных japan_subway.xlsx
• Файл данных содержит список достопримечательностей Токио
• Ваша задача – визуализировать эти достопримечательности на схеме
Токийского метро
32
33. Изображение-подложка
• В качестве подложки для визуализации можно использовать не только географические карты, но и любой
графический файл. С этим файлом можно связать условную систему координат, и затем использовать эти
координаты в наборе данных.
• Выполните команду Map>Background Images и выберите набор данных japan_subway.
• В списке Background Images нажмите Add Image…
• Укажите путь к файлу japan_subway.jpg
• Свяжите X Field с полем x в наборе данных и установите правую границу в 100
• Свяжите Y Field с полем y в наборе данных и установите верхнюю границу в 60
• На вкладке Options выберите Always show entire image
• Установите размытие изображения
33
34. Визуализация набора данных
• Добавьте координаты x, y в область столбцов и строк, поле Name - в область метки
• Добавьте поля Comment и URL в область подсказки (Tooltip)
• Отредактируйте параметры подсказки и графического элемента, чтобы получить результат как на рисунке
• Отключите вывод подписей для координатных осей (Show header в контекстном меню оси)
34
35. Как получить координаты
• Предположим, мы хотим включить в набор данных координаты станции
Meguro. Когда уже есть привязанное изображение, координаты точки
можно получить так:
– установите курсор мыши в нужную точку и в контекстном меню выполните
команду Annotate>Point
– в полученной аннотации будут указаны нужные координаты
35
36. Интерактивность
• С рабочим листом можно связывать действия, которые срабатывают, когда пользователь
указывает или выделяет графический элемент на листе
• Выполните команду меню Worksheet>Actions и добавьте новое действие Add Action >URL
• Укажите имя для действия (Name): Найти <Name> Area в Google Maps. Примечание:
название поля в угловых скобках надо добавлять через меню Insert
• В области Run Action on нужно выбрать: Menu
• В поле URL укажите: https://maps.google.com/maps?q=<Name>,+Tokyo,+Japan&hl=en
Примечание: название поля в угловых скобках надо добавлять через меню Insert
• Если вы хотите использовать поля, содержащие строки на русском языке, то, скорее всего,
потребуется установить флажок URL Encode
• Теперь при наведении мыши на станцию в подсказке должна быть ссылка на Google maps
36
38. Импорт данных для геокодирования
• Чтобы обеспечить возможность геокодирования названий населенных пунктов на русском языке, мы
дополним базу данных геокодирования Tableau
• Распакуйте содержимое архива russian_geocoding.zip на рабочий стол (должна появиться папка russian
geocoding, содержащая 3 файла)
• Выполните команду меню Map/Geocoding/Import custom geocoding…
• Укажите в диалоге Import Custom Geocoding путь к папке russian geocoding и нажмите Import
• В вашем личном каталоге (Мои документы>My Tableau Repository) создастся копия базы данных
геокодирования, в которую будут добавлены данные о русских названиях
• Удалить данные для геокодирования можно с помощью команды меню: Map/Geocoding/Remove custom
geocoding
• Будет создана новая иерархия географических ролей: Субъект [федерации] > Район > Название
• Описание требований к файлам для импорта содержится в справке Tableau. Попасть в нужный раздел
можно с помощью ссылки “Learn about Custom Geocoding” в окне Import Custom Geocoding
• Данные для геокодирования можно найти на сайтах: geonames.org, geonames.nga.mil, gis-lab.info
• Данные в базе, которую мы импортировали, созданы на основе набора данных, подготовленного
сообществом gis-lab.info: http://gis-lab.info/qa/vmap0-settl-rus.html
38
39. Файл данных
• Создайте новую рабочую книгу: top_cities.twbx
• Создайте подключение к источнику данных top_cities.csv – это данные о городах России с
населением свыше 100 жителей
– источник: http://ru.wikipedia.org/wiki/Список_городов_России_с_населением_более_100_тысяч_жителей
• Если программа не распознала, что в первой строке файла содержатся заголовки, то
выберите в настройках таблицы этот режим
• Выберите для полей Город и Субъект географические роли: Название и Субъект
39
40. Визуализация развития городов
• Добавьте поля Город и Субъект в область деталей (Detail)
• Сделайте поле Год измерением и добавьте его в область страниц (Pages)
• Добавьте поле Население в область размера (Size)
• Запустите анимацию, нажав на кнопку воспроизведения в области Pages
• В большинстве случаев, импортированная база для геокодирования содержала координаты нужного
города, однако некоторые города там отсутствуют, даже крупные
40