基于字典中的值填充多边形

2024-10-02 18:20:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python和多边形还不熟悉。我被要求从一个数据框中创建一个字典,其中包含2016年以来美国每个州的人口总数。你知道吗

population_mean = population_data_all.groupby(by=['NAME'], as_index=False)[['POPEST2016_CIV']].sum()
population_dict = population_mean.set_index('NAME').T.to_dict('list')
population_dict

字典的输出示例:

{'Alabama': [4849650], 'Alaska': [720195], 'Arizona': [6911889], 'Arkansas': [2982997], 'California': [39091453], 'Colorado': [5506673], 'Connecticut': [3568865], 'Delaware': [948534]}

然后我被要求得到一个美国国家的geojson文件 来源-美国50个州的ArcGIS形状文件+DC(https://www.arcgis.com/home/item.html?id=f7f805eb65eb4ab787a0a3e1116ca7e5

然后被要求绘制它,并根据shapefile将阿拉斯加的颜色改为红色,这是我用这个代码做的。你知道吗

fig = plt.figure() 
ax = fig.gca()
BLUE = '#5599ff'
RED = '#FF0000'

for feature in data['features']:
    geometry = feature['geometry']
    state = feature['properties']['STATE_NAME']
    if geometry['type'] == 'Polygon':
        poly = geometry
        ppatch = PolygonPatch(poly, fc=BLUE, ec=BLUE,  alpha=0.5, zorder=2)
        ax.add_patch(ppatch)
    elif geometry['type'] == 'MultiPolygon':
        for polygon in geometry['coordinates'][0]:
            if state == 'Alaska':
                poly = Polygon(polygon)
                ppatch = PolygonPatch(poly, fc=RED, ec=RED, alpha=0.5, zorder=2)
                ax.add_patch(ppatch)
            else:
                poly = Polygon(polygon)
                ppatch = PolygonPatch(poly, fc=BLUE, ec=BLUE, alpha=0.5, zorder=2)
                ax.add_patch(ppatch)

    else:
        print('Don\'t know how to draw :', geometry['type'])



ax.axis('scaled')
plt.axis('off')
plt.show()

但是,我迷路了,需要帮助如何使用上面字典中的值来为多边形着色。例如,使用一个颜色映射,因此每个州都会根据其人口获得一种颜色。你知道吗

谢谢!你知道吗


Tags: name字典颜色typepltblueredax