Я бьюсь головой об стену, пытаясь разобраться с проблемой, возникшей у меня с Python Dash.Я пытаюсь выполнить простую операцию: импортировать CSV-файл, создать точечную диаграмму с данными и использовать раскрывающиеся меню для выбора данных X и Y (через имена столбцов данных).Все работает хорошо, но вывод графика отображает только данные, связанные с первым индексом в кадре данных.Любая помощь будет очень высоко ценится.Код ниже и скриншот ниже: Заголовок кадра данных Вывод приложения Dash
import base64
import datetime
import io
import dash
from dash.dependencies import Input, Output, State
import dash_core_components as dcc
import dash_html_components as html
import pandas as pd
import numpy as np
import chart_studio.plotly as py
import plotly.graph_objects as go
import plotly.io as pio
import plotly.express as px
pio.templates.default = "plotly_white"
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
df= pd.read_csv(r'C:\Users\ajinn\Desktop\stock.csv')
app = dash.Dash()
app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
app.layout= html.Div(children=[
html.H1(children='Data Table Charter',style={'textAlign': 'center'}),
html.Div(children='Data Charting Tool for CSV Files',style={'textAlign': 'center'}),
html.Div([
html.Label("Select X Series Data"),
dcc.Dropdown(id='x-data',
options=[{'label': i, 'value': i} for i in list(df)],
multi=False
)
],
style={'display':'inline-block','padding-left': '0px'}
),
html.Div([
html.Label("Select Y Series Data"),
dcc.Dropdown(id='y-data',
options=[{'label': i, 'value': i} for i in list(df)],
multi=True
)
],
style={'display':'inline-block','padding-left': '100px'}
),
html.Div(id='graph-data')
])
@app.callback(
Output(component_id='graph-data',component_property='children'),
[Input(component_id='x-data',component_property='value'),
Input(component_id='y-data',component_property='value')
]
)
def update_graph(xdata,ydata):
return dcc.Graph(
figure=go.Figure(
data=go.Scatter(x=df[xdata],y=df[ydata],mode='lines+markers')
)
)
if __name__ == '__main__':
app.run_server(port=3337)