Создание и визуализация пользовательских диаграмм и графиков в QGIS при помощи R: различия между версиями

Материал из GIS-Lab
Перейти к навигации Перейти к поиску
(создал черновик статьи по кастомным диаграммам в QGIS)
 
(продолжение правок)
Строка 13: Строка 13:
# Вывести их на карту в качестве элемента условного знака объекта.
# Вывести их на карту в качестве элемента условного знака объекта.


Так как вторая задача проще и, возможно, вы предпочитаете использовать другое ПО для создания lbfuhfvv, то сначала объяним как визуализировать уже готовые диаграммы.
Так как вторая задача проще и, возможно, вы предпочитаете использовать другое ПО для создания диаграмм, то сначала объяним как визуализировать уже готовые диаграммы.


==Визуализация диаграмм в QGIS==
==Визуализация диаграмм в QGIS==
Здесь всё довольно просто. Поместите все диаграммы в одну папку и дайте им имена, соответствующие уникальным идентификаторам объектов в таблице аттрибутов к которым они относятся. Например, если у векторного слоя есть атрибут "ID", содержащий значения типа 0, 1, 2..., то назовите соответствующие им диаграммы 0.svg, 1.svg, 2.svg...
Теперь перейдём к редактированию векторного слоя. Создайте текстовый аттрибут в котором будет храниться путь к диаграммам (убедитесь, что поля будут способны вместить достаточное количество символов). Для заполнения полей аттрибута воспользуемся калькулятром полей. Вот это простое выражение позволит справится с задачей:
  'путь/к/папке/с/диаграммами/' || "ID" || '.svg'
Приведённое выражение создаёт строку текста путём присоединения к пути к папке значения атрибута "ID" и расширения файла. Таким образом, для каждого объекта слоя будет записан путь к файлу с его диаграммой. Обратите внимание, что статические (неизменные) значения заключены в одинарные кавычки ('), а динамические (извлекаемые из соответствующего атрибута слоя) - в двойные ("); кроме того, не забывайте, что последним символом в пути к папке должен быть слеш, в противном случае, полученный путь будет неправильным (например, 'путь0.svg', вместо 'путь/0.svg'). Создание атрибута для сохрания пути и его заполнение можно произвести одновременно - выберите опцию "создать новое поле" в калькуляторе полей.
==Создание скрипта R для построения диаграмм==
Это - самая сложная часть. Неискушённому пользователю придётся порядочно покопаться в документации к "ggplot2" и соотвествующих примерах, чтобы разобраться, как контролировать различные аспекты визуализации.
Вот какие задачи небходимо решить на данном этапе:
* Подобрать палитру.
* Сделать фон дигаммы прозрачным.
* Сделать фон области значений диаграммы прозрачным.
* Удалить сетку области значений диаграммы (опционально).
* Удалить легенду.
* Удалить подписи к осям и объектам.
* Обрезать поля диаграммы.
* Добавить несуществующие данные (чтобы внешний облик диаграмм не претерпевал значительных изменений при добавлении новых значений).
* Создать полноценную диаграмму-легенду для расшифровки созданных диаграмм.
Ниже приведён код скрипта для запуска из Processing Toolbox, снабжённый необходимыми комментариями.

Версия от 03:51, 29 марта 2015

Эта страница является черновиком статьи.


В QGIS есть встроенные инструменты построения графиков. С их помощью вы можете построить гистограммы, круговые диаграммы и текстовые диаграммы. К сожалению, встроенные инструменты обладают рядом недостатков, таких как множественные артифакты при рендеринге, громоздскость при отображении большого количества данных, непривлекательный вид. Создание собственных графиков может решить чать этих проблем. В данной статье показано, как используя R можно создавать пользовательские графики для QGIS.

Идея

Мы можем создать необходимые графики в формате SVG сторонними инструментами и отображать их в качетсве [части] условного знака необходимого объекта. Здесь будет показано применение программной среды R, в частности, пакета "ggplot2".

Смоделируем ситуацию. Предположим, нам надо отобразить на диаграмме некоторые величины, находящиеся в атрибутах векторного слоя. Пусть у нас будет 12 атрибутов с необходимыми значениями, но мы знаем, что в будущем их количество увеличится до 20.

Если мы попытаемся использовать встроенные инструменты, то полученные диаграммы загромоздят значительную область экрана (гистограммы), либо будут практически нечитаемы (текстовые диаграммы). В нашем случае лучше всего подойдут радиальные диаграммы.

Итак, нам нужно решить следующие задачи:

  1. Создать диаграммы в формате SVG.
  2. Вывести их на карту в качестве элемента условного знака объекта.

Так как вторая задача проще и, возможно, вы предпочитаете использовать другое ПО для создания диаграмм, то сначала объяним как визуализировать уже готовые диаграммы.

Визуализация диаграмм в QGIS

Здесь всё довольно просто. Поместите все диаграммы в одну папку и дайте им имена, соответствующие уникальным идентификаторам объектов в таблице аттрибутов к которым они относятся. Например, если у векторного слоя есть атрибут "ID", содержащий значения типа 0, 1, 2..., то назовите соответствующие им диаграммы 0.svg, 1.svg, 2.svg...

Теперь перейдём к редактированию векторного слоя. Создайте текстовый аттрибут в котором будет храниться путь к диаграммам (убедитесь, что поля будут способны вместить достаточное количество символов). Для заполнения полей аттрибута воспользуемся калькулятром полей. Вот это простое выражение позволит справится с задачей:

 'путь/к/папке/с/диаграммами/' || "ID" || '.svg'

Приведённое выражение создаёт строку текста путём присоединения к пути к папке значения атрибута "ID" и расширения файла. Таким образом, для каждого объекта слоя будет записан путь к файлу с его диаграммой. Обратите внимание, что статические (неизменные) значения заключены в одинарные кавычки ('), а динамические (извлекаемые из соответствующего атрибута слоя) - в двойные ("); кроме того, не забывайте, что последним символом в пути к папке должен быть слеш, в противном случае, полученный путь будет неправильным (например, 'путь0.svg', вместо 'путь/0.svg'). Создание атрибута для сохрания пути и его заполнение можно произвести одновременно - выберите опцию "создать новое поле" в калькуляторе полей.

Создание скрипта R для построения диаграмм

Это - самая сложная часть. Неискушённому пользователю придётся порядочно покопаться в документации к "ggplot2" и соотвествующих примерах, чтобы разобраться, как контролировать различные аспекты визуализации.

Вот какие задачи небходимо решить на данном этапе:

  • Подобрать палитру.
  • Сделать фон дигаммы прозрачным.
  • Сделать фон области значений диаграммы прозрачным.
  • Удалить сетку области значений диаграммы (опционально).
  • Удалить легенду.
  • Удалить подписи к осям и объектам.
  • Обрезать поля диаграммы.
  • Добавить несуществующие данные (чтобы внешний облик диаграмм не претерпевал значительных изменений при добавлении новых значений).
  • Создать полноценную диаграмму-легенду для расшифровки созданных диаграмм.

Ниже приведён код скрипта для запуска из Processing Toolbox, снабжённый необходимыми комментариями.