我试图建立一个跨越十年的数据状态图,用一个滑块来选择地图上显示的年份。用户可以选择2014年,地图将显示2014年的数据。在
我将要显示的数据与适当的shapefile合并。最后,我得到了733行和5列——每个县最多有9行具有相同的县名和坐标。在
在我试着绘制地图之前,一切似乎都很好。返回此错误消息:
OverflowError: Maximum recursion level reached
我尝试过使用sys.setrecursionlimit
重置递归限制,但无法越过该错误。在
我一直没能找到一个答案让我明白,所以我希望有人能给我指出正确的方向。在
我使用bokeh和json来构建映射。我尝试过使用sys.setrecursionlimit
,但是无论我走多高,都会收到相同的错误消息。在
上周我使用了相同的代码,但由于我使用的是数据的一个子集,所以无法显示不同年份的数据。既然我已经修复了这个问题,我就被这个错误消息卡住了。在
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)
当我使用一个更有限的数据集时,同样的代码也能很好地工作。以下是错误消息的完整上下文:
^{pr2}$
我也有类似的问题!在
我把问题缩小到
.to_json
步骤。出于某些原因,当我合并右边的geopandas文件时:我遇到了递归错误。我通过两者的转换找到了成功:
^{pr2}$这对我很有效。令人恼火的是,我不知道为什么会这样做,但我希望这可以帮助其他人解决同样的错误!在
如果需要更高的递归深度,可以使用sys:
这就是说,你的错误很可能是无限递归的结果,如果增加深度不能修复它,这种情况可能就是这样。在
相关问题 更多 >
编程相关推荐