python - 添加颜色条并根据值填充多边形
问题描述
我正在使用 Basemap 和 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
。patches
然后传递到一个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
一种颜色是正确的方法。
解决方案
推荐阅读
- sql - 根据条件从查询响应中选择一条记录 | 函数 postgres
- networking - WebSockets 不适用于 GCP 中的 HTTP/2 负载均衡器后端
- java - ProcessorContext 的远程 forward() 调用抛出 NPE
- python - Python3 - 列表索引超出范围 - 从文件中提取数据
- c++ - 可以投个矢量图吗
到一个向量 - python - 基于辅助列值的颜色直方图,用于探索性分析
- javascript - 在 Javascript/jQuery 中使用 datetimepicker 在 HTML 表中过滤 FROM 和 TO 日期
- curl - 卷曲请求.curl:(6)无法解析主机:
- php - Symfony 4 Match 方法如火种
- flutter - Flutter Audioplayers 延迟