Таблица Plotly Dash не связана с результирующим графиком, использующим Python? - PullRequest
0 голосов
/ 07 марта 2019

Я пытаюсь создать таблицу данных в Python Dash, которая в интерактивном режиме генерирует график в зависимости от того, как вы редактируете rows/columns.

Мой код очень похож на пример, приведенный в документации.В то время как мой код для создания таблицы работает и показывает таблицу в моей инструментальной панели, полученный graph не отображается.

Ошибка, которую я использовал, была ключом error: 'map', который, как я знаю, связан с проблемой словаря, но когда я обновился до новой версии dash, error исчез, даже если graph до сих пор не появляется.

Я продолжаю смотреть на код моего graph и не вижу никаких проблем.Мне интересно, может ли это быть как-то связано с dash table, который я как-то пропустил?Мой код ниже:

app.layout=html.Div(children=[
html.H1('Sentiment Analysis', style={'textAlign': 'center',    'fontSize': 36}),

html.Div([html.Img(src='data:image/png;base64,{}'.format(encoded_image2.decode()))], style={'textAlign': 'center'}),

html.Div([
dash_table.DataTable(id='datatable-interactivity',
columns=[{'id': i, 'name': i, "deletable": True} for i in df.columns],
data=df.to_dict('rows'),
editable=True,
filtering=True,
sorting=True,
sorting_type="multi",
row_selectable="multi",
row_deletable=True,
selected_rows=[],
pagination_mode="fe",
pagination_settings={
"displayed_pages":1,
"current_page":0,
"page_size": 35,},
navigation="page",
style_table={
'maxHeight': '300',
'overflowY': 'scroll',
'border': 'thin lightgrey solid'},
style_cell={'minWidth': '100px', 'width': '100px', 'maxWidth':    '200px',
'whiteSpace': 'normal'}
)]),
html.Div(id='datatable-interactivity-container')])

@app.callback(
Output('datatable-interactivity-container', "figure"),
[Input('datatable-interactivity', "derived_virtual_data"),
Input('datatable-interactivity', "derived_virtual_selected_rows")])

def update_graph(rows, derived_virtual_selected_rows):
 if derived_virtual_selected_rows is None:
 derived_virtual_selected_rows = []

if rows is None:
 dff = df
else:
 dff = pd.DataFrame(rows)

colors = []
 for i in range(len(dff)):
  if i in derived_virtual_selected_rows:
    colors.append("rgb(0,191,255)")
 else:
    colors.append("rgb(255,215,0)")

return html.Div([dcc.Graph(
        id=i,
        figure={
            "data":{"x":dff["Tweet"],
                     "y":dff[column] if column in dff else [],
                     "type":"scatter",
                     "marker":{"color":colors},
                     "text":dff["Text"]
               },
            "layout":{
                "xaxis":{"automargin": True},
                "yaxis":{"automargin": True},
                "height":250,
            },
        },
    )
for column in ["Positive", "Negative", "Compound"]])

if __name__=='__main__': app.run_server(debug=True)

Я не уверен, в чем проблема, но вы можете увидеть пустой graph в dashboard ниже.Дайте мне знать, если у вас есть какие-либо идеи, так как это было бы очень признательно, спасибо ![enter image description here] 1

...