Я новичок в использовании plotly и пытаюсь построить динамическую визуализацию с использованием python и plotly.Я надеюсь, что смогу переключаться между картой мира и графиком рассеяния с помощью раскрывающегося меню.
До сих пор мне удавалось успешно отображать выпадающее меню, отображать необходимые метки и дажепокажите один график, удалив либо карту хороплета, либо кривую рассеянного графика из переменной данных.Проблема заключается в том, что когда я пытаюсь реализовать оба графика, карта хороплета рисуется поверх графика рассеяния независимо от выбранного пункта меню.
A снимок экрана выходных данных.
Области, в которых я искал решение
Графика и просмотр разделов обновлений и макетов среди многих других.
Пересмотр ploty python страница учебника для выпадающих меню и реализации части предложения в моем коде с акцентом на метод обновления.
Я обнаружил страницу StackOverflow , которая выглядела оченьблизко к ответу, который мне нужен, но не совсем.
Наконец, я также искал форум сообщества plotly .
Код
Примечание, которое я удалилчасть кода, такая как импорт и данные в начале.
scatterplot = go.Scatter(
y = df2['Renewable energy consumption (% of total final energy consumption) 2015'],
x = df2['GDP per capita, PPP (constant 2011 international $) 2015'],
mode='markers',
ids=df2['Country Name'],
showlegend = False,
marker = dict(
size = 8,
color = np.random.randn(500),
),
textfont = dict(
size = 14,
color = 'black')
)
choropleth_map = dict(
type = 'choropleth',
locations = df['ISO3166_alpha3'],
z = df['renewables_mtoe'],
text = df['Country'],
colorscale = [[0,"rgb(106, 240, 255)"],[0.10,"rgb(106, 199, 255)"],[0.70,"rgb(50, 100, 255)"],[0.93,"rgb(0, 43, 198)"],\
[0.99999,"rgb(0, 24, 109)"],[1,"rgb(220, 220, 220)"]],
autocolorscale = False,
reversescale = True,
marker = dict(
line = dict (
color = 'rgb(180,180,180)',
width = 0.5
) ),
colorbar = dict(
title = 'mtoe<br>',
tickfont = dict(
size = 16),
titlefont = dict(
size = 16)),
)
data = [choropleth_map, scatterplot]
updatemenus = list([
dict(active=0,
buttons=list([
dict(label = 'choropleth_map',
method = 'update',
args = [{'visible': [True,False]},
{'title': 'The Map'}]),
dict(label = 'scatterplot',
method = 'update',
args = [{'visible': [False,True]},
{'title': 'Scatterplot'}]),
]),
)
])
layout = dict(title='default', showlegend=False,
updatemenus=updatemenus,
geo = dict(showframe = True,
showcoastlines = False,
showland = True,
landcolor = '#dcdcdc',
projection = dict(type = 'natural earth'))
)
fig = dict( data=data, layout=layout )
plotly.offline.iplot(fig, validate=True)
Большое спасибо заранее всем, кто может помочь.Я потратил несколько дней, пытаясь решить эту проблему, и это даже заставило меня сделать свой первый пост в StackOverflow.