Python Plotly Choropleth贴图成功加载到Jupyter,但未加载到Dash browser
我已经能够使用plotly和geopandas成功地创建自定义shapefile Choropleth地图。它在我的Jupyter窗口中成功加载。下图是在Jupyter中运行时地图的外观 这是用于渲染上述贴图的代码:Python Plotly Choropleth贴图成功加载到Jupyter,但未加载到Dash browser,python,plotly,geojson,plotly-dash,geopandas,Python,Plotly,Geojson,Plotly Dash,Geopandas,我已经能够使用plotly和geopandas成功地创建自定义shapefile Choropleth地图。它在我的Jupyter窗口中成功加载。下图是在Jupyter中运行时地图的外观 这是用于渲染上述贴图的代码: data = go.Choroplethmapbox( geojson = gdf_json, locations = df.index.astype(str), z = df['2016']['Total'], t
data = go.Choroplethmapbox(
geojson = gdf_json,
locations = df.index.astype(str),
z = df['2016']['Total'],
text = df.index.astype(str),
colorbar=dict(thickness=20,ticklen=3,tickformat=',.2r',outlinewidth=0),
marker_line_width=0.5,
marker_opacity=0.4,
colorscale='gnbu',
zmin=zmin,
zmax=zmax,
hovertemplate = "<b>%{text}</b><br>" +
"%{z:,.4r}<br>" +
"<extra></extra>")
#mapbox geographic map layout
layout = go.Layout(
title='Expenditure, 2020',
autosize=True,
#hovermode='closest',
#showlegend=True,
height=600,
margin=dict(l=0, r=0, t=40, b=0),
mapbox = dict(
domain = {'x': [0, 1],'y': [0, 1]},
center = dict(lat=-27.628296146695863, lon=152.74025612708698),
accesstoken = MAPBOX_ACCESSTOKEN,
#pitch=0,
zoom=10,
style='light')
)
fig = go.Figure(data=data, layout=layout)
fig.show()
我尝试过的
为了缩小潜在问题的范围,我尝试加载其他元素,如下拉列表、单选按钮和范围滑块。这些已成功加载,只是地图本身没有加载。我还使用了正确的公共Mapbox API标记,因为我之前加载了一个Scattermapbox图(创建了一个气泡图),它在Dash上已经成功
可能的原因
显然,起点是我的代码中是否有一个非常小的语法错误
然而,我还想知道geojson的加载是否有问题?即使它在Jupyter中成功加载,在将其加载到Dash中时可能会使用稍微不同的方法
要将我的geopandas多边形转换为geojson,请执行以下操作:
gdf.to_CRS(epsg=4326)
gdf。设置索引(id)
gdf.\uuu地理位置\uu接口\uuu
如果可能的话,我希望能得到一些帮助。谢谢大家! 我正在处理一个非常类似的问题,当我从jupyter转换为dash时,我不记得必须更改geojson的过程。但不要拒绝这种可能性。它没有从geojson中产生任何错误这一事实很可能表明在构建布局时出现了错误。所以前两件事你应该先试试
app.run\u服务器(debug=True)
def build_map():
app.layout=html.Div[(dcc.Graph(figure=build\u map())]
app.layout = html.Div([
dcc.Graph(id = 'plot', figure = fig)
])
if __name__ == '__main__':
app.run_server()
return fig #after building the map figure