Skip to main content
Хороплет карта: определение, примеры и как её построить
Guides

Хороплет карта: определение, примеры и как её построить

Хороплет карта закрашивает регионы по значению данных: плотности населения, итогам выборов, ВВП. Узнайте, как она работает и как построить её через API.

Brent van der Heiden5 min read
#choropleth map#thematic map#data visualization#gis#geojson#map api

Хороплет карта — самая распространённая тематическая карта, которую вы видите в новостях, в отчётах о политике и на корпоративных дашбордах. Если вы когда-либо смотрели карту выборов, закрашенную по марже, карту COVID, закрашенную по уровню заболеваемости, или карту ВВП, закрашенную по доходу, — вы читали хороплет.

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

Определение в одно предложение

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

Слово происходит от греческих khoros (область) и plethos (множество). Оно появилось у французских статистиков в 1820-х годах и с тех пор остаётся рабочей лошадкой тематической картографии.

Примеры хороплет карт

Несколько классических применений:

  • Плотность населения по странам, штатам или почтовым индексам
  • Результаты выборов по округам, с интенсивностью цвета, показывающей маржу победы
  • ВВП на душу населения по странам, часто в логарифмической шкале
  • Уровень безработицы по регионам
  • Уровень заболеваемости COVID на 100 тыс. жителей по округам
  • Средняя цена недвижимости по районам
  • Распространение широкополосного интернета по переписным участкам
  • Урожайность по сельскохозяйственным регионам

Общая черта в том, что данные — это одно число на заранее определённый регион.

Хороплет карта против тепловой карты

Их часто путают. Разница существенна.

Хороплет карте нужны заранее определённые регионы. Данные уже агрегированы. Каждый регион получает один цвет. Границы — часть сообщения.

Тепловой карте нужны точечные данные. Плотность вычисляется через биннинг или ядровое сглаживание. Результат — непрерывный градиент, игнорирующий административные границы. Используйте её для поиска кластеров, а не для сравнения регионов.

Если у вас одно число на почтовый индекс — используйте хороплет. Если у вас облако GPS-пингов — используйте тепловую карту.

Как строится хороплет карта

Три ингредиента:

  1. Геометрия границ. Набор полигонов GeoJSON (или слои векторных тайлов) для регионов, которые вы хотите закрасить, каждый со стабильным идентификатором (код страны ISO, FIPS штата США, код EU NUTS, почтовый индекс).
  2. Значение данных на регион. Простой JSON-объект или CSV, привязанный к тому же идентификатору.
  3. Рендерер, который их объединяет. Современные веб-картографические библиотеки (MapLibre GL, Mapbox GL, deck.gl, OpenLayers) умеют объединять данные с границами во время выполнения через feature-state или выражение свойства.

Вот концептуальный шаблон на MapLibre GL JS:

map.addSource('regions', {
  type: 'vector',
  url: 'https://api.mapatlas.xyz/v1/tiles/regions.json',
});

map.addLayer({
  id: 'regions-fill',
  type: 'fill',
  source: 'regions',
  'source-layer': 'regions',
  paint: {
    'fill-color': [
      'interpolate',
      ['linear'],
      ['feature-state', 'value'],
      0,   '#f7fbff',
      50,  '#6baed6',
      100, '#08306b',
    ],
    'fill-opacity': 0.8,
  },
});

// Push your data to each feature at runtime
for (const [regionId, value] of Object.entries(yourData)) {
  map.setFeatureState(
    { source: 'regions', sourceLayer: 'regions', id: regionId },
    { value }
  );
}

Карта подгружает тайлы границ один раз и перестилизует их по мере изменения ваших данных. Без серверного рендеринга.

Выбор правильной цветовой шкалы

Три правила:

Последовательная — для однонаправленных данных. От светлого к тёмному в одном тоне. Применяется для величин, идущих от низких к высоким без значимой средней точки (население, доход, доля).

Расходящаяся — для двунаправленных данных. Нейтральная середина и два тона, расходящиеся в стороны (красный и синий, коричневый и бирюзовый). Применяется, когда ноль или среднее значимо, а значения могут находиться по обе стороны (годовой рост, электоральная маржа, отклонение от среднего).

Избегайте радужных шкал. Они подразумевают порядок, который человеческое восприятие не считывает равномерно. Они также не работают для людей с дальтонизмом. ColorBrewer (colorbrewer2.org) — стандарт, проверенный картографами, для палитр хороплета.

Частая ошибка — слишком много корзин. Пять-семь — оптимум. Больше — и читатель не различит соседние оттенки.

Вопрос классификации

Когда у вас есть шкала, нужно решить, где провести границы корзин:

  • Равный интервал. Делит диапазон на равные части. Подходит для равномерно распределённых данных, не работает при выбросах.
  • Квантильная. В каждой корзине одинаковое число регионов. Полезно, когда вы хотите видеть каждый оттенок, но может скрывать величину различий.
  • Естественные разрывы (Jenks). Минимизирует дисперсию внутри корзин. Самый дата-ориентированный вариант по умолчанию.
  • Ручная. Когда границы корзин несут смысл (налоговые ставки, демографические пороги).

Выбор реально влияет на историю, которую рассказывает карта. В любом серьёзном отчёте публикуйте метод классификации.

Частые ошибки

Искажение площадью. Большие, малонаселённые регионы визуально доминируют на карте. Хороплет президентских выборов США, закрашенный по марже, будет выглядеть в основном красным, потому что сельские округа огромны. Картограммы или карты точечной плотности решают это.

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

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

Отсутствующие данные. Решите заранее, показывать ли регион без данных серым, опускать его или закрашивать как ноль. Каждый выбор меняет прочтение.

Когда выбрать другой график

Если ваши данные многомерны по региону, хороплет их уплощает. Рассмотрите:

  • Малые мультипликаторы. Сетка хороплет карт, по одной на переменную.
  • Двумерный хороплет. Две переменные, закодированные в 2D-сетке цветов. Сложно читать, но мощно, когда работает.
  • Картограмма. Искажает размер регионов по значению, полезно, когда доминирует искажение площадью.
  • Столбчатая диаграмма на карте. Иногда данные — это просто таблица; карта — декорация.

Картография — это коммуникация. Хороплет — один инструмент из многих.

Где здесь MapAtlas

Dynamic Maps API предоставляет источники векторных тайлов для границ стран, регионов и почтовых индексов, которые вы стилизуете во время выполнения собственными данными — ровно как в сниппете MapLibre выше. Границы хостятся в ЕС, помечены версиями и спроектированы так, чтобы чисто объединяться по стандартным идентификаторам (ISO 3166, NUTS, национальные системы почтовых индексов).

Для страниц, которым нужно показывать агрегированную статистику по регионам (цена недвижимости по почтовому индексу, стоимость доставки по региону, продажи по территории), GeoEnrich API возвращает значения по регионам, привязанные к тем же идентификаторам границ, так что один и тот же join работает и для карты, и для ваших таблиц. Полный обзор тематических карт — в Thematic Map Guide.

Часто задаваемые вопросы

Что такое хороплет карта?

Хороплет карта — это тематическая карта, на которой географические регионы (страны, штаты, почтовые индексы, переписные участки) закрашиваются пропорционально статистической переменной, измеренной для каждого региона. Интенсивность цвета кодирует значение, поэтому более тёмный оттенок обычно означает более высокое значение, а более светлый — более низкое. Хороплет карты являются стандартным способом визуализации плотности населения, результатов выборов, ВВП на душу населения, уровня безработицы и любой другой величины, естественно агрегируемой по административной границе.

Чем хороплет карта отличается от тепловой карты?

Хороплет карта раскрашивает заранее определённые регионы (страны, почтовые индексы, районы) на основе агрегированного значения для каждого региона. Тепловая карта показывает интенсивность точечных данных непрерывно в пространстве, не учитывая административные границы. Используйте хороплет, когда данные уже агрегированы по регионам (например, голоса по штатам, продажи по почтовым индексам). Используйте тепловую карту, когда данные представляют собой облако точек и вы хотите увидеть, где они скапливаются (инциденты, клиентские метки, показания датчиков).

Когда стоит использовать хороплет карту?

Используйте хороплет карту, когда ваши данные — одно числовое значение на регион, а регионы примерно сопоставимы по размеру или их можно нормировать по площади или населению. Хорошие примеры: доля домохозяйств с широкополосным доступом по округам, случаи COVID на 100 тыс. человек по регионам, средняя аренда по почтовым индексам. Избегайте хороплета, когда регионы сильно различаются по площади (большие сельские регионы визуально доминируют, даже если в них меньше населения), или когда на регион приходится несколько переменных (используйте малые мультипликаторы или другой тип графика).

Как построить хороплет карту?

Вам нужны три вещи: геометрия границ регионов (полигоны GeoJSON), значение данных для каждого региона, привязанное к стабильному идентификатору, и рендерер, который объединяет их и применяет цветовую шкалу. Распространённые стеки: MapLibre GL или Mapbox GL с выражением fill-color, deck.gl GeoJsonLayer с getFillColor, D3.js с d3-geo для статического SVG, или хостинговое API динамических карт. MapAtlas Dynamic Maps API предоставляет тайлы границ для стран, регионов и почтовых индексов, которые вы стилизуете во время выполнения собственными данными.

Какая цветовая шкала подходит для хороплет карты?

Используйте последовательную одноцветную шкалу (например, от светло-голубого к тёмно-синему), когда данные — одна величина с естественным нулём. Используйте расходящуюся двухцветную шкалу (красный — белый — синий), когда значения расходятся вокруг значимой средней точки (электоральная маржа, годовое изменение). Избегайте радужных шкал: они подразумевают порядок, который человек не воспринимает равномерно, и не работают для людей с дальтонизмом. ColorBrewer — стандартный справочник палитр, проверенных картографами.

Оказалось полезным? Поделитесь.

Об авторе

Brent van der Heiden

Автор

Brent van der Heiden

Co-Founder & CEO at MapAtlas

Brent built MapAtlas out of a conviction that developers deserve location APIs with fair pricing and genuine end-user privacy. He writes about geospatial infrastructure, AI search visibility, and how location data powers the products people rely on every day.

Все статьи
Вернуться в блог