You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中绘制亚美尼亚带次级行政区的Choropleth地图?

解决亚美尼亚次级行政区Choropleth地图绘制问题

你之前使用的naturalearth_lowres仅包含国家级地理数据,无法展示次级行政区细节。以下是实现需求的完整方案:

完整代码

import numpy as np
import pandas as pd
import geopandas as gpd
import matplotlib.pyplot as plt

# 你的数据
data_arm = {
    'subregion': ['Aragatsotn','Ararat','Armavir','Gegharkunik','Kotayk','Lori','Shirak','Syunik','Tavush','Vayots Dzor','Yerevan'],
    'Value':[0.2560,0.083,0.0120,0.9560,0.423,0.420,0.2560,0.043,0.0820,0.4560,0.019]
}
df = pd.DataFrame(data_arm)

# 获取全球一级行政区(对应亚美尼亚次级行政区)地理数据
admin1_data = gpd.read_file(gpd.datasets.get_path('naturalearth_admin_1_states_provinces'))

# 筛选亚美尼亚区域
armenia_regions = admin1_data[admin1_data['iso_a3'] == 'ARM']

# 合并地理数据与数值数据(通过行政区名称匹配)
merged_data = armenia_regions.merge(df, left_on='name', right_on='subregion', how='left')

# 绘制Choropleth地图
fig, ax = plt.subplots(1, 1, figsize=(10, 8))
merged_data.plot(
    column='Value',
    ax=ax,
    legend=True,
    legend_kwds={'label': '数值', 'orientation': 'horizontal'},
    cmap='Blues',
    edgecolor='white',
    linewidth=0.8
)

# 优化可视化效果
ax.set_title('亚美尼亚次级行政区数值分布图')
ax.set_axis_off()

plt.show()

关键说明

  • 使用naturalearth_admin_1_states_provinces数据集:该数据包含全球各国的一级行政区信息,正好对应亚美尼亚的次级行政区级别
  • 数据匹配:通过iso_a3 == 'ARM'筛选亚美尼亚区域,再用行政区名称将地理数据和你的数值数据关联
  • 可视化调整:设置颜色映射、图例样式、边框颜色等,提升地图可读性

如果遇到名称匹配问题,可先运行print(armenia_regions['name'].tolist())查看地理数据中的行政区名称,再对齐你的subregion列内容即可。

内容的提问来源于stack exchange,提问作者silent_hunter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 19:45:39