Как отобразить диаграммы рядом с объектами на карте?

13

Этот вопрос предназначен в первую очередь для программного обеспечения QGIS, но приветствуются все другие программные решения, насколько это возможно, чтобы достичь его как можно проще, желательно из коробки. Хотя ограничением является статическая карта (подлежит печати), здесь не применимы решения для интерактивной веб-карты.

Есть ли способ, как создать диаграммы (инструмент / плагин в QGIS) для данных временного ряда / таблицы для точек (могут быть также линии / многоугольники) и отображать их рядом с объектами?

Я знаком с простым инструментом диаграммы / гистограммы. У меня также появилась идея загружать диаграммы как SVG, но это означает, что мне нужно сначала экспортировать много диаграмм, а затем вручную связать их как символы. Есть ли какое-то более глубокое нестандартное решение?

То, что я пробовал до сих пор, выглядит так:

введите описание изображения здесь

То, что я хотел бы достичь, выглядит следующим образом:

введите описание изображения здесь

Miro
источник
2
Привет Миро, я недавно отправил этот вопрос ( gis.stackexchange.com/questions/175299/… ) - который, оглядываясь назад, очень напоминает этот! Вам удалось найти решение этой проблемы?
Эндрю Тис
1
@ AndrewTice Нет, это было сделано в специальном платном программном обеспечении. К сожалению, я понятия не имею, насколько возможно использовать библиотеку python - matplotlib из QGIS и рисовать графики в canvas. Во всяком случае я не нашел ничего полезного, как плагин или сценарии на эту тему. В противном случае может быть также сгенерировано SVG-изображение и привязано его в QGIS к точкам.
Миро
Проверьте это сообщение от Аниты, я думаю, что это может быть хорошим началом: anitagraser.com/2016/03/19/creating-dynamic-icon-series
WKT
@Azimo Спасибо, вариант, который описывает Анита в своей статье, упоминается в моем вопросе с самого начала. Я знал, что в холсте карты QGIS вы можете использовать файлы SVG и связать их с объектами. Конечно, вам нужен конкретный путь к SVG для каждой функции, а не «случай, когда» Анита использует его в своей статье. Я ищу что-то более продвинутое, если это возможно.
Миро
Это то, что встречается довольно часто - это было бы отличным дополнением к QGIS или ArcGIS, чтобы иметь возможность включать спарклайны или мини-диаграммы в качестве метки для объекта на карте.
Кес

Ответы:

1

R лучше всего соответствует вашим требованиям. Попробуйте нижеприведенное и поэкспериментируйте с ним.

#Load rgdal library
library(rgdal)
#Load the shapefile specifying path in dsn and file name for layer
world_layer<-readOGR(dsn="C:/SampleData",layer="world_borders")
#Describe the columns of the layer
summary(world_layer)
#Plot using spplot library with column values categorized into 30 classes
spplot(world_layer, z="POP_CNTRY", cuts= 30)

Вы должны получить карту и диаграмму, как показано ниже, конечно, вы можете настроить ее несколькими способами.

введите описание изображения здесь

Есть много ссылок, которые учат более подробно

http://www.kevjohnson.org/making-maps-in-r/

http://personal.colby.edu/personal/m/mgimond/Spatial/Intro_to_spatial_data_manipulation_in_R.html#using-the-rgdal-library

https://cran.r-project.org/web/views/Spatial.html

http://www.r-bloggers.com/amateur-mapmaking-getting-started-with-shapefiles/

https://www.nceas.ucsb.edu/scicomp/usecases/ReadWriteESRIShapeFiles

addcolor
источник
Спасибо, но как это связано с моим вопросом "Как отображать диаграммы рядом с объектами на карте?" Где находятся диаграммы рядом с объектом для каждого объекта на карте?
Миро
1

Вы можете использовать ArcGIS, если у вас есть доступ к нему. Это пример того, что я сделал с ArcMap и Excel (извините за язык, старая карта). Вы можете создать график в Excel и вставить его как объект. Суть этого метода в том, что если вы хотите использовать большую палитру цветов и хотите, чтобы они были синхронизированы с картой, вам придется делать это вручную. Утомительный метод, но он делает свою работу.
Другой вариант, также в ArcMap, это Graph Toolset, который может создавать временную графику. Лично я не люблю этот инструмент и предпочитаю использовать Origin или Grapher для создания профессиональных графиков.

alecsx
источник
1
Спасибо, но как это связано с моим вопросом "Как отображать диаграммы рядом с объектами на карте?" Где находятся диаграммы рядом с объектом для каждого объекта на карте?
Миро
На прилагаемой карте, которая является картой растительного покрова, присутствующие там круговые диаграммы представляют процент земного покрова для каждого типа растительного покрова. Вы сказали, что приветствуются другие программные решения, отсюда и мой ответ.
alecsx
Конечно, другие программные решения приветствуются. Но на прилагаемом рисунке показаны только круговые диаграммы в виде изображений, добавляемых рядом с фреймом карты - это легко сделать во всех постобработках QGIS, Mapinfo, ArcGIS и других программ или графических программ. Я хочу иметь диаграмму для каждого объекта прямо на карте. Вы можете думать об этом так же, как надписи, за исключением того, что вместо текстовой метки есть диаграмма. И я даже знаю, как это сделать с SVG или другим форматом изображения в QGIS, как указано в моем вопросе. Я спрашиваю, возможно ли иметь эти графики «вживую» (из базы данных или таблицы) вместо изображений.
Миро
1

Я не совсем уверен, подойдет ли UMS MapServer в качестве слоя WMS в QGIS. Я пробовал это, но я не очень хорош в разработке хорошей диаграммы с файлом MapServer * .MAP.

Кампау Оку
источник
Не могли бы вы добавить несколько ссылок на документацию о графиках и лучше всего примеры / турориалы? Я бросил быстрый взгляд, и кажется, что можно делать также гистограммы и гистограммы с накоплением. Установка UMS MapServer и настройка WMS для возможности отображения диаграмм на карте звучит громоздко, но в некоторых случаях может быть единственным возможным решением. Спасибо.
Миро