回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我试图建立一个跨越十年的数据状态图,用一个滑块来选择地图上显示的年份。用户可以选择2014年,地图将显示2014年的数据。在</p>
<p>我将要显示的数据与适当的shapefile合并。最后,我得到了733行和5列——每个县最多有9行具有相同的县名和坐标。在</p>
<p>在我试着绘制地图之前,一切似乎都很好。返回此错误消息:</p>
<blockquote>
<p>OverflowError: Maximum recursion level reached</p>
</blockquote>
<p>我尝试过使用<code>sys.setrecursionlimit</code>重置递归限制,但无法越过该错误。在</p>
<p>我一直没能找到一个答案让我明白,所以我希望有人能给我指出正确的方向。在</p>
<p>我使用bokeh和json来构建映射。我尝试过使用<code>sys.setrecursionlimit</code>,但是无论我走多高,都会收到相同的错误消息。在</p>
<p>上周我使用了相同的代码,但由于我使用的是数据的一个子集,所以无法显示不同年份的数据。既然我已经修复了这个问题,我就被这个错误消息卡住了。在</p>
<pre class="lang-py prettyprint-override"><code>def json_data(selectedYear):
yr = selectedYear
murders = murder[murder['Year'] == yr]
merged = mergedfinal
merged.fillna('0', inplace = True)
merged_json = json.loads(merged.to_json())
json_data = json.dumps(merged_json)
return json_data
geosource = GeoJSONDataSource(geojson = json_data(2018))
palette=brewer['YlOrRd'][9]
palette = palette[::-1]
color_mapper = LinearColorMapper(palette = palette, low = 0, high = 60, nan_color = '#d9d9d9')
hover = HoverTool(tooltips = [ ('County/City','@NAME'),('Victims', '@Victims')])
color_bar = ColorBar(color_mapper=color_mapper, label_standoff=8,width = 500, height = 30,
border_line_color=None,location = (0,0),
orientation = 'horizontal')
p = figure(title = 'Firearm Murders in Virginia', plot_height = 600 , plot_width = 950, toolbar_location = None, tools = [hover])
p.xgrid.grid_line_color = None
p.ygrid.grid_line_color = None
p.xaxis.visible=False
p.yaxis.visible=False
p.patches('xs','ys', source = geosource,fill_color = {'field' :'Victims', 'transform' : color_mapper},
line_color = 'black', line_width = 0.25, fill_alpha = 1)
p.add_layout(color_bar, 'below')
def update_plot(attr, old, new):
year = Slider.value
new_data = json_data(year)
geosource.geojson = new_data
p.title.text = 'Firearm Murders in VA'
slider = Slider(title = 'Year', start = 2009, end = 2018, step = 1, value = 2018)
slider.on_change('value', update_plot)
layout = column(p,widgetbox(slider))
curdoc().add_root(layout)
output_notebook()
show(layout)
</code></pre>
<p>当我使用一个更有限的数据集时,同样的代码也能很好地工作。以下是错误消息的完整上下文:</p>
^{pr2}$