我是bokeh的新手,并尝试制作一个简单的地图。
从这个页面http://www.abisen.com/blog/bokeh-maps/制作地图非常简单。 但个性化需要更深入地了解散景。 我想在法国展示每个城镇的名称,我从法国开放数据(https://www.data.gouv.fr/fr/datasets/fond-de-carte-des-codes-postaux/)
现在我只得到默认的工具提示:
我想更改它以添加城市名称:
我添加了一个工具提示:
hover = HoverTool(
tooltips=[
("index", "$index"),
("(x,y)", "($x, $y)"),
("city", "@city"),
]
)
p = figure(title="France", tools=[hover])
但是无法找到让城市名称可以访问工具提示的方法(所以有#34; ???"而不是名字)。 我无法弄清楚如何将城市名称添加到字形的data_source。 所以我试着用手在每个字形的data_source中添加一个列:
for city_name in states:
data = getDict(city_name, dat)
# here I tried to add a legend => useless
gliph_ = p.patches(data[city_name]['lat_list'], data[city_name]['lng_list'],legend=city_name, line_color="black")
#here I try to add a column into the glyph's data_source :
cities = [x for x in data[city_name]['city']][0]
gliph_.data_source.add(cities, "city")
我看到gliph有一个新列作为数据源:
gliph_.data_source.column_names
>['xs', 'ys', 'city']
但工具提示无法识别: - (
如何将data_source列添加到patche中? 如何通过工具提示识别它?
答案 0 :(得分:1)
我的"数据"我的数据结构错误了。字典。
我必须为部门中的每个城市创建一个具有相同长度的值的数组,并将其附加到部门:
for new_col in ["surf", "pop", "fam", "villes", "dpt", "cp", "perimetre"]:
gliph_.data_source.add(data[departement][new_col], new_col)
实际将数据源添加到字形中。