Хотел бы создать боке-хороплет для собственного использования.Это показывает, что Китай разделен на многоугольники Provinces
, окрашенные в значение, называемое surplus
.У меня Years
с 1995 по 2016 год, и я пытаюсь обновить цвета вместе со слайдером.Мой фрейм данных выглядит примерно так (случайная выборка из 10):
Year Province Surplus
371 2014 Hubei 5.953000e+06
268 1999 Fujian 7.123000e+06
44 1995 Hebei 9.030000e+05
246 1999 Anhui 1.300600e+07
236 2011 Zhejiang -5.258105e+06
406 2005 Guangdong 1.117000e+07
180 1999 Shanghai 1.543000e+06
252 2005 Anhui 1.250800e+07
346 2011 Henan -1.538884e+05
399 1998 Guangdong 1.614100e+07
Мой код таков:
source = ColumnDataSource(data = df_all)
color_mapper = LinearColorMapper(palette = Spectral6,
low = df_all.Surplus.min(),
high = df_all.Surplus.max())
p = figure(title = 'Statistics by Year',
plot_height = 700,
plot_width = 1100)
p.patches('x', 'y',
source = source,
fill_color = {'field': 'Surplus',
'transform': color_mapper},
line_color = 'black',
line_width = 0.60,
fill_alpha = 0.60)
def callback(attr, old, new):
yr = slider.value
new_data = df_all[df_all.Year == yr]
source.data = new_data
slider = Slider(start = 1995,
end = 2016,
value = 1995, step = 1,
title = "Year")
slider.on_change('value', callback)
hover = HoverTool(tooltips = [('Province','@Province'), ('Surplus', '@Surplus')])
color_bar = ColorBar(color_mapper = color_mapper, width=8, location=(0,0))
layout = column(widgetbox(slider), p)
curdoc().add_root(layout)
outfp = r"C:\Users\myname\surplus2016.html"
save(p, outfp)
Однако мои ползунки не меняются, и японятия не имею, почему еще.Возможно, что-то с моим шагом обновления.Есть идеи?Хотя мне удалось вытащить хороплета.