Я рисую диаграмму разброса, используяplotly. Базовая карта работает нормально, но точки не отображаются. Однако если я распечатаю изображение, точки появятся. Если я также добавлю к фигуре .show(), точки будут отображаться отдельной ссылкой. Но я хочу, чтобы в раскрывающемся списке выбиралось отдельное состояние и точки для визуализации. Не знаю, что делаю не так?
import dash
from dash import Dash, dcc, html, Input, Output
import dash_bootstrap_components as dbc
import plotly.express as px
import pandas as pd
import plotly.graph_objs as go
import numpy as np
mapboxtoken = "xxx"
us_cities = pd.read_csv(
'https://raw.githubusercontent.com/plotl ... top-1k.csv'
)
stateID = us_cities['State'].unique()
external_stylesheets = [dbc.themes.SPACELAB, dbc.icons.BOOTSTRAP]
app = dash.Dash(__name__, external_stylesheets = external_stylesheets)
app.layout = html.Div([
dcc.Dropdown(id="states_select",
options=stateID,
optionHeight=25,
multi=True,
searchable=True,
placeholder='Please select...',
clearable=True,
value=[''],
style={'width': "60%"}
),
html.Div([
dcc.Graph(id="the_graph")
]),
])
@app.callback(
Output("the_graph", "figure"),
Input("states_select", "value"),
)
def update_graph(states_chosen):
dff = us_cities[us_cities["State"].isin(states_chosen)]
scatter = px.scatter_mapbox(data_frame = dff,
lat = 'lat',
lon = 'lon',
zoom = 0,
hover_data = ['State', 'lat', 'lon']
)
scatter.update_layout(
height = 750,
mapbox=dict(
style='carto-positron',
accesstoken=mapboxtoken,
),
margin={'r':10, 't': 0, 'l': 0, 'b': 0}
)
#scatter.show()
return scatter
if __name__ == '__main__':
app.run_server(debug=True, port = 8050)
Подробнее здесь: https://stackoverflow.com/questions/788 ... ter-mapbox