添加颜色条并基于值填充多边形

2024-10-03 15:24:15 发布

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

我正在使用底图和一个shapefile来创建覆盖我的底图的多边形。这一切都工作得很好,但现在我想填写的多边形与不同的颜色绿色阴影的基础上,在一个1和100之间的列表值

我有一个元组排序列表,如下所示:


kk = Counter(table["county"]).items()
## sort based on the second item in the tuple
kk = sorted(kk, key=lambda x: x[1])

kk

[('EL DORADO', 1),
 ('SAN FRANCISCO', 1),
 ('SACRAMENTO', 2),
 ('SAN MATEO', 3),
 ('SHASTA', 3),
 ('ALAMEDA', 5),
 ('CONTRA COSTA', 5),
 ('HUMBOLDT', 6),
 ('PLUMAS', 6),
 ('SOLANO', 9),
 ('LOS ANGELES', 10),
 ('SAN BENITO', 18)...]

我使用以下函数分离元组并分别访问它们的值:

def separateSortedValues(arg):
    s_x = []
    s_y = []

    for x in kk:
        s_x.append(x[0])
        s_y.append(x[1])

    return([s_x, s_y])

下面是我的代码,在这里我遍历一个shapefile,查找具有我要查找的县名的多边形。如果这是真的,它们将被添加到名为patches的列表中^{<然后将cd1>}传递给PatchCollection,在那里我可以控制所分配的颜色

def fill_counties(table_data):

    patches = []

    counties = table_data[0]

    for info, shape in zip(map.counties_info, map.counties):
        if info["NAME"] in counties:
            patches.append(Polygon(np.array(shape), True))

    filled_polygons = PatchCollection(patches, facecolor="green", edgecolor="gray", linewidths=.5, zorder=2)    
    return(ax.add_collection(filled_polygons))

fill_counties(separateSortedValues(kk))

我想根据与县相关的table[1]值使每个多边形变成不同的绿色,因为我不认为给整个PatchCollection facevalue着色一种颜色是正确的方法


Tags: ininfo列表颜色table多边形shapefilesan