Использование python 3.6 и bokeh 13.0.
Я комбинирую патчи боке, чтобы создать карту провинций и
и круг боке, чтобы наложить города.
Я хочу использовать эту карту в качестве интерактивного входного фильтра для другого графика.
При нажатии на города проблем нет, я получаю название города.
При попытке сделать то же самое для провинции, которая представляет собой не одну точку, а скорее многоугольник, я получаю следующее сообщение об ошибке:
сообщение об ошибке обработки Сообщение «PATCH-DOC» (редакция 1): TypeError («индексы списка должны быть целыми числами или слайсами, а не списком»,)
Я просто хочу индекс / имя строки. Как мне подойти к этому?
with open('map_NL_provinces.pickle', 'rb') as f:
provinces = pickle.load(f)
with open('map_NL_cities.pickle', 'rb') as f:
cities = pickle.load(f)
# renaming key in in dict
provinces['name'] = provinces.pop('names')
provinces = ColumnDataSource(data = provinces)
# from df to CDS
cities = ColumnDataSource(data=cities[['name','x','y']])
# plot map
f.patches('x', 'y', source=provinces,
fill_color={'field': 'rate', 'transform': color_mapper},
fill_alpha=1, line_color="black", line_width=1.5)
# plot cities
f.circle(x='x', y='y', source=cities, size=12, color=palette[3])
def callback_cities(attr, old, new):
# This uses syntax for Bokeh >= 0.12.15
print("Names of selected circles: {}".format(cities.data['name'][cities.selected.indices]))
print("Indices of selected circles: ", cities.selected.indices)
f.title.text=str(cities.data['name'][cities.selected.indices])
def callback_provinces(attr, old, new):
# This uses syntax for Bokeh >= 0.12.15
print("Names of selected provinces: {}".format(provinces.data['name'][provinces.selected.indices]))
print("Indices of selected provinces: ", provinces.selected.indices)
f.title.text=str(provinces.data['name'][provinces.selected.indices])
cities.on_change('selected', callback_cities)
provinces.on_change('selected', callback_provinces)