Я отобразил TreeMap. Я хотел бы отобразить информацию о вещах, которые я нажимаю. Поэтому я попытался воспроизвести первый пример, приведенный в Da sh Tutorial part 4 . Однако, похоже, он не отвечает:
from os.path import abspath, dirname, join
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
import pandas as pd
import plotly.express as px
from ..server import app
import json
@app.callback(
Output('click-data', 'children'),
[Input('graph', 'clickData')])
def display_click_data(clickData):
return json.dumps(clickData, indent=2)
def get_tickers():
with open(join(base_dir, data_path), 'rb') as fp:
stock_df = pd.read_excel(fp)
stock_df = stock_df.dropna()
# stock_df = stock_df.where(pd.notnull(stock_df), None)
return stock_df
df = get_tickers()
def layout():
return html.Div([
html.Div([
html.Div([
html.H5('Stocks', style={'textAlign': 'center', 'padding': 10}),
dcc.Graph(id='graph',
figure=px.treemap(df, path=['Country', 'Exchange'], # values='pop',
# color='lifeExp', hover_data=['iso_alpha'],
# color_continuous_scale='RdBu',
# color_continuous_midpoint=np.average(df['lifeExp'], weights=df['pop'])
))
], className='pretty_container twelve columns'),
], className='pretty_container twelve columns'),
html.Div([
dcc.Markdown("""
**Click Data**
Click on markets in the graph.
"""),
html.Pre(id='click-data', style=styles['pre']),
], className='three columns'),
])
if __name__ == "__main__":
app.run_server(debug=False, port=8051)
Действительно, как можно видеть на гифке:
clickData
возвращает None
.