Страница 1 из 1

Отображение точек по двум признакам в QGIS или ArcGIS

Добавлено: 30 янв 2024, 10:13
Aiman.T
Здравствуйте коллеги! Подскажите, пожалуйста, может кто сталкивался с такой задачей.
Мне необходимо отобразить точечный слой по двум признакам. Есть в атрибутивке одно поле и нужно чтобы по нему точки приняли различные фигуры (круг, квадрат и тд), а по другому полю раскрасились по цветам.
На данный момент у меня только одно решение на крайний случай, это сложить значения этих двух полей и вручную потом расставить символы, но на это уйдет много времени, потому как их будет очень много.
Может кто знает решение этой проблемы, можно и в QGIS, ArcGIS Desktop и ArcGIS PRO.

Re: Отображение точек по двум признакам в QGIS или ArcGIS

Добавлено: 30 янв 2024, 10:51
gork
Добрый день.
В Arcmap это делается примерно так: свойства слоя - символы - категории (или "по нескольким атрибутам"). Справка: https://desktop.arcgis.com/ru/arcmap/la ... tegory.htm
Про qgis сходу нагуглилось такое: https://gis.stackexchange.com/questions ... on-in-qgis
Но, похоже, и там и там придется руками символы назначать :-(

Re: Отображение точек по двум признакам в QGIS или ArcGIS

Добавлено: 30 янв 2024, 10:55
trir
Но, похоже, и там и там придется руками символы назначать
но для каждого значения, а не объекта

Re: Отображение точек по двум признакам в QGIS или ArcGIS

Добавлено: 30 янв 2024, 10:58
AlexRomantsov
В QGIS, для начала символизируем по уникальным, поле Форма.
А в настройках маркера, цвет его заливки можно переопределить выражением (например указать, в каком атрибуте код цвета)
form_col.png
form_col.png (34.73 КБ) 4458 просмотров

Re: Отображение точек по двум признакам в QGIS или ArcGIS

Добавлено: 30 янв 2024, 14:35
Aiman.T
AlexRomantsov писал(а):
30 янв 2024, 10:58
А в настройках маркера, цвет его заливки можно переопределить выражением (например указать, в каком атрибуте код цвета)
А можете подсказать дальше что указывать, не разобралась. пробовала в Типе поля ставить нужное поле, но ничего не получалась. С остальными вариантами не получилось к сожалению.

Re: Отображение точек по двум признакам в QGIS или ArcGIS

Добавлено: 31 янв 2024, 01:46
ustreb
В Arc GIS выбираете слой - символы - уникальные значения - выбираете по какому полю производить разбиение - далее каждый тип оформляете индивидуально

Re: Отображение точек по двум признакам в QGIS или ArcGIS

Добавлено: 31 янв 2024, 05:29
AlexRomantsov
Aiman.T, не совсем понятна задача. К примеру, сколько всего вариантов цвета в ваших данных? 3? 250? В каком виде в атрибуте описан цвет, как HEX код (#9f5dd2), как RGB (123,213,103), как HTML имя (Red), как произвольное текстовое описание (сиреневенький)? Что бы что то рекомендовать, максимально простое в вашем случае, нам нужно понимать нюансы.
Предположим, что в вашем атрибуте, в поле Color, хранится что то из первых трех вариантов. Тогда достаточно открыть Конструктор выражений (кнопкой "Переопределение данных - Изменить"), задать выражение, состоящее из названия поля с цветом, заключенного в кавычки.
ets_color.PNG
ets_color.PNG (64.61 КБ) 4278 просмотров
Если значение цвета корректное, все будет работать. На этом слайде объекты раскрашены, рядом выведены текстовые значения в поле color:
ets_color2.PNG
ets_color2.PNG (3.56 КБ) 4278 просмотров
Настройку надо повторить для каждого маркера (круг, квадрат, треугольник)

Re: Отображение точек по двум признакам в QGIS или ArcGIS

Добавлено: 31 янв 2024, 07:53
Aiman.T
Оба столбика текстовых. Конкретно тот который нужно раскрасить по цветам, там фамилии указаны. Самих фамилий около 40, но одна фамилия может повторятся до 100 раз + другое поле которое я хочу разбить по форме отображения там 4 категории всего (4 формы) и отсюда получается очень много индивидуальных отображений, вручную долго настраивать.

Re: Отображение точек по двум признакам в QGIS или ArcGIS

Добавлено: 31 янв 2024, 08:42
AlexRomantsov
Ок. Может быть несколько решений.
Например, при настройке цвета, в стиле, пишем мегазапрос с 40 условиями, что то вроде
if( "фамилия" ='Иванов', '#9f5dd2', '#000000'), т.е. маркер Иванова раскрасим цветом '#9f5dd2'.
Минусы - сложно управлять стилем, дополнять фамилии, менять цвета, и вообще сложно понять, почему не работает для Петрова.
2. Если слой/таблица статична, и изменяется/дополняется редко. Можно расширить таблицу атрибутов полем "Цвет", отсортировать по фамилиям, выделить всех Петровых, и для выделенных задать цвет в поле Цвет. Далее - настроить как выше.
3. Если таблица не статична, дополняется, в т.ч. новыми фамилиями.
Создаете новый классифицирующий слой GeoPackage, в который при создании добавьте 2 поля: Фамилия (текст) и Цвет (текст). Откройте таблицу атрибутов нового слоя. Заполните все 40 фамилий (создайте 40 записей), а во втором поле присвойте цвет, можно именами из https://colorscheme.ru/html-colors.html.
Далее, ваш слой с данными нужно связать с классифицирующим. Свойства слоя - Связи - Новая - Присоединить слой (указав классифицирующий) и настроить связываемое поле (фамилии) и целевое поле (фамилии). Настроить Присоединенные поля (Цвет). Все, в таблице атрибутов слоя с данными появится новое поле с цветом. При изменении Фамилии с Иванова на Петрова изменится и цвет. При создании новой записи с Ивановым - появится и цвет. Далее настроить стиль как выше.