【发布时间】:2021-03-03 13:39:19
【问题描述】:
我正在尝试使用活动单元格使我的表格与我的 Mapbox 交互。 在我的数据表中,当我单击单元格时,它应该向我显示地图上纬度和对数的表示点。但是,它向我显示了
的错误“TypeError:update_graphs() 缺少 1 个必需的位置参数:‘active_cell’”
这是我的 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
]
感谢您阅读我的代码,我们将不胜感激! :)
【问题讨论】:
-
问题是 active_cells 没有被定义,因此它不能在需要它作为位置参数的函数中使用。
-
您好,感谢您的反馈!我想问我如何定义我的active_cell?有什么可以参考的例子吗?因为我对冲刺相当陌生...
-
你能把剩下的代码贴出来吗?
-
当然,我已经编辑了我的其余代码。谢谢!
-
我不完全理解 active_cell 的用途以及你从哪里得到它,所以你能向我解释一下吗?
标签: python plotly-dash