我正在使用geopandas
绘制具有分类颜色的地图。 geopandas
是matplotlib
的接口,因此相同的结构应该起作用。我要做的是使每个key
以特定的颜色显示。只要可以将No data
设置为灰色,就可以使用预定义厘米的随机颜色。
keys = ['A', 'B', 'C', 'D', 'No data']
color_range = list(np.linspace(0, 1, len(keys), endpoint=False))
colors = [plt.cm.Pastel1(x) for x in color_range]
color_dict = dict(zip(keys, colors))
color_dict['No data'] = 'lightgrey'
我从中获得的字典看起来是正确的:
{'A': (0.98, 0.70, 0.68, 1.0),
'B': (0.70, 0.80, 0.89, 1.0),
'C': (0.87, 0.79, 0.89, 1.0),
'D': (1.0, 1.0, 0.8, 1.0),
'No data': 'lightgrey'}
当我尝试将其转换为颜色图时,出现KeyError:0
cmap = LinearSegmentedColormap.from_list('mycmap', color_dict)
我的最终绘图命令是:
merged_df.plot(column='GROUP', categorical=True, legend=True, cmap=cmap)