从散点图框更改为密度图框会导致错误



我正在寻找解决我遇到的这个问题的方法。在情节社区(https://community.plot.ly/t/problem-with-densitymapbox-chart-type/28517(中有一个几乎与我相似的问题,但仍然没有找到解决方案。我的下拉菜单由散点图框和密度图框组成,因为我想在它们之间切换。但是,当从散点图框更改为密度图框时,结果如下图所示:

散点图框格式后的密度图框 导入破折号 导入副本 导入路径库 导入破折号 将 numpy 导入为 NP 导入数学 将日期时间导入为 DT 进口大熊猫作为PD 从 dash.dependencies 导入输入、输出、状态、客户端函数 将dash_core_components作为 DCC 导入 将dash_html_components导入为 HTML 格式 导入dash_table 导入plotly.graph_objs即用

# get relative data folder
PATH = pathlib.Path(__file__).parent
DATA_PATH = PATH.joinpath("data").resolve()
external_scripts = [
‘https://cdn.plot.ly/plotly-1.39.1.min.js’
]
external_stylesheets = [
‘https://codepen.io/etpinard/pen/wxwPXJ’
]
app = dash.Dash(
__name__, 
external_scripts=external_scripts,
external_stylesheets=external_stylesheets
)
server = app.server
# Load data
df = pd.read_excel("Clean_TR(6.8.19).xlsx")
group_name = df['gname'].unique()
mapbox_access_token = <your token>
app.layout = html.Div(
[
dcc.Store(id = 'aggregate_data'),
dcc.Dropdown(
id = 'map_plot',
options = [{'label':i, "value":i} for i in ['Scatter', 'Density']],
value = ['Scatter']
),
dcc.Graph(id = 'mindanao-map')
]
)
@app.callback(
Output('mindanao-map', 'figure'),
[Input('map_plot', 'value')]
)
def update_map(map_plot):
if map_plot == "Density":
maptype = 'densitymapbox'
else:
maptype = 'scattermapbox'
return {
'data' : [{
'lat':df['latitude'],
'lon':df['longitude'],
'marker':{
'color': df['freq'],
'size': 8,
'opacity': 0.6
},
'customdata': df['idno'],
'type': maptype
}],
'layout': {
'mapbox': {
'accesstoken': mapbox_access_token,
'style':"light",
'center': dict(lon=123.30, lat= 7.50),
'zoom':'6',
},
'hovermode': 'closest',
'margin': {'l': 0, 'r': 0, 'b': 0, 't': 0}
}
}
if __name__ == "__main__":
app.run_server(debug=True)

但是每当我换掉 if-else 排序时,即

if map_plot == "Scatter":
maptype = 'scattermapbox'
else:
maptype = 'densitymapbox'

它的结果是显示密度图,但散点不会。 我是否需要将这两者分开而不是 if-else?任何输入都可以。谢谢你的时间!

这是一个Plotly.js错误,我在这里提交了一份报告:https://github.com/plotly/plotly.js/issues/4285

编辑:此错误在最新版本的Plotly.js和 Plotly.py 和Dash中得到修复。

最新更新