Рисование картограмм с помощью Matplotlib? - PullRequest
14 голосов
/ 18 ноября 2010

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

Example cartogram

из worldmapper.org .В этом примере страны масштабируются в соответствии с их населением, что приводит к почти постоянной плотности населения.

Излишне говорить, что это действительно круто.Кто-нибудь знает библиотеку Matplotlib для рисования таких карт?Метод, используемый на worldmapper.org, описан в (1), поэтому я был бы удивлен, если бы никто еще не реализовал это ...

Мне также интересно услышать о других библиотеках картограмм, даже если онине созданы для Matplotlib.

(1) Michael T. Gastner и MEJ Newman, основанный на диффузии метод создания карт, выравнивающих плотность, Proc.ТуземныйАкад.Sci.США, 101, 7499-7504 (2004).Доступный в arXiv .

Ответы [ 4 ]

3 голосов
/ 22 ноября 2010

Это , это , хотя он основан на другом алгоритме (и хотя он находится на сайте ESRI, он не требует ArcGIS). Конечно, когда у вас есть картограмма, вы можете построить ее в matplotlib.

1 голос
/ 05 июня 2016

Здесь - плагин Javascript для создания картограмм с использованием D3.Это хорошее, простое решение, если вас не слишком заботит точный размер регионов.Если важна точность, есть и другие доступные опции, которые дают вам больше свободы для игры с параметрами алгоритма, чтобы получить более точный результат.

Вот две замечательные автономные программы, которые я знаю:

Scapetoad очень прост в использовании.Просто дайте ему шейп-файл, скажите ему, какой атрибут использовать для масштабирования, и установите несколько параметров точности.Если есть какие-либо сомнения, этот пост описывает процесс.

Carto3F более сложный и допускает большую точность, хотя это немного сложнее выяснить - множество настроек параметров без особогодокументация, объясняющая их.

Существует также плагин картограммы QGIS , написанный на Python.Хотя я не смог заставить его работать, поэтому не могу это прокомментировать.

0 голосов
/ 20 марта 2019

Функция геоплот.картограмма в Геоплот: визуализация геопространственных данных - геоплот 0.2.0

говорит, что это библиотека геопространственных карт Python высокого уровнярасширение к картопии и матплотлибу.

0 голосов
/ 30 ноября 2017

Короче, нет. Но у Ньюмана есть отличная небольшая реализация его и Гастнера метода на его сайте . Установить его легко и работает из командной строки. Вот пример рабочего процесса с использованием этого программного обеспечения, который работал для меня.

  1. Вычислить сетку оценок плотности по некоторому региону, например, в Python. Сохраните его в виде матрицы чисел.
  2. Запустите программу cart с вашей матрицей плотности в качестве ввода из командной строки или из подпроцесса в Python.
  3. Программа возвращает список новых координат для каждой точки сетки.
  4. Передайте точки шейп-файла через программу interp в новый шейп-файл, чтобы получить преобразованную карту.

На главной странице есть хорошие инструкции.

...