我正在尝试使用活动单元格使我的表格与我的 Mapbox 交互。在我的数据表中,当我单击单元格时,它应该向我显示地图上纬度和对数的表示点。但是,它向我显示了错误
“TypeError:update_graphs() 缺少 1 个必需的位置参数:'active_cell'”</p>
这是我的mapbox代码:
import dash
import dash_bootstrap_components as dbc
import dash_core_components as dcc
import dash_html_components as html
import pandas as pd
import dash_table
from dash.dependencies import Input, Output, State
from engine import session
from model import Table1
import plotly.express as px
import plotly.graph_objects as go
mapbox_access_token = "my token map"
df = pd.read_sql(session.query(Table1).statement,session.bind)
fig=go.Figure(go.Scattermapbox(
lat=['1.11','1.22','1.33'],
lon=['101.12','101.22','102.54'],
mode='markers',
marker=go.scattermapbox.Marker(
size=10,
color='rgb(255, 0, 0)'
),
text=["1","2","3"]
))
fig.update_layout(
autosize=True,
hovermode='closest',
mapbox=dict(
accesstoken=mapbox_access_token,
bearing=0,
center=dict(
lat=1.222,
lon=103.856
),
pitch=0,
zoom=2
),
)
app = dash.Dash(__name__, external_stylesheets=[dbc.themes.BOOTSTRAP], suppress_callback_exceptions=True)
html.Div([dash_table.DataTable(
id='testtable',
columns=[{"name": i, "id": i,
'deletable': False,
'renamable': True
} for i in df.columns],
data=df.to_dict('records'),
#details design of my table which is slighty long#
)]),
dcc.Graph(figure=fig3_6,id='selectgraph'),
@app.callback(
Output('selectgraph', 'figure'),
Input('testtable', 'active_cell'),
Input('testtable', 'selected_row_ids'))
def update_graphs(row_ids,selected_row_ids,active_cell):
selected_id_set = set(selected_row_ids or [])
if row_ids is None:
dff = df3_6
row_ids = df3_6['id']
else:
dff = df3_6.loc[row_ids]
active_row_id = active_cell['row_id'] if active_cell else None
colors = ['#FF69B4' if id == active_row_id
else '#7FDBFF' if id in selected_id_set
else '#0074D9'
for id in row_ids]
return [
dcc.Graph(
id=column + '--row-ids',
figure=fig3_6,
mode='markers',
marker=go.scattermapbox.Marker(
size=2,
color=colors,
))
for column in ['long','lat'] if column in dff
]
感谢您阅读我的代码,任何帮助将不胜感激!:)