我正在尝试为散景补丁图添加一个图例,但我最终只有一个图例项(并且标签错误)。
我有一个多边形的形状文件。每个多边形都有一个名为“类别”的属性,它可以取值“A”、“B”、“C”、“D”和“E”。我将形状文件转换为 geojson 并随后创建一个散景图块图,使用 CategoricalColorMapper 根据它所在的“类别”为每个多边形添加颜色。现在我希望图例显示五个类别选项及其各自的颜色。
这是我的代码:
import geopandas as gpd
from bokeh.io import show, output_notebook, output_file, export_png
from bokeh.models import GeoJSONDataSource, CategoricalColorMapper, Legend, LegendItem
from bokeh.plotting import figure, reset_output
from bokeh.transform import factor_cmap
import selenium
import numpy as np
gdf = gpd.GeoDataFrame.from_file("test.shp")
gdf_json = gdf.to_json()
source_shape = GeoJSONDataSource(geojson=gdf_json)
cmap = CategoricalColorMapper(palette=["black", "purple", "pink", "brown", "blue"], factors=['A','B','C','D', 'E'])
p = figure(height=500, match_aspect=True,
h_symmetry=False, v_symmetry=False, min_border=0)
p.patches('xs', 'ys', source=source_shape, fill_color={'field': 'category', 'transform': cmap},
line_color='black', line_width=0.5, legend='category')
export_png(p, filename="map.png")
但是,我得到的输出如下: map.png output
图例仅显示一项,带有标签“类别”而不是实际类别名称。我该如何解决这个问题,以便图例显示所有 5 个类别及其标签(A、B、C、D、E)?
呼啦一阵风
鸿蒙传说
相关分类