I am new to Python programming. I am trying to add a date range to my graph using DatePickerRange in Dash but it doesn't seem to work. The following message is displayed every time I click on the link:
My data frame is in the following format: Date (index, YYYY-MM-DD), Machine, Start Time (YYYY-MM-DD HH-MM-SS), Parameter 1, Parameter 2
My inputs are: start date, end date, parameter (from drop down).
Output: line graph for the specified date range with "Parameter" on the y-axis, "Start Time" on the x-axis, legend="Machine"
datatypes: Start Time: datetime64[ns] Parameter: int64 Machine: object
I have tried plotting without DatePickerRange and it seems to work fine. Somehow, with DatePickerRange my inputs are not being read.
I am not sure what I am doing wrong. I've provided part of the code below. Any help will be greatly appreciated!
app = dash.Dash(__name__)
app.layout = html.Div([
dcc.DatePickerRange(
id='my-date-picker-range',
calendar_orientation='horizontal',
day_size=39,
end_date_placeholder_text='End Date',
with_portal=False,
first_day_of_week=1,
reopen_calendar_on_clear=True,
is_RTL=False,
clearable=True,
number_of_months_shown=1,
min_date_allowed=dt(2022, 1, 1).date(),
max_date_allowed=dt(2022, 3, 17).date(),
initial_visible_month=dt(2022, 1, 1).date(),
start_date=dt(2022, 1, 1).date(),
end_date=dt(2022, 2, 17).date(),
display_format='MMM Do, YY',
month_format='MMMM, YYYY',
minimum_nights=2,
persistence=True,
persisted_props=['start_date'],
persistence_type='session',
updatemode='bothdates'
),
html.H1("Machine Parameter Tracker"),
dcc.Dropdown(id='Parameter',
options=[{'label': x, 'value': x} for x in column_list],
value={}),
dcc.Graph(id='my-graph', figure={})
])
@app.callback(
Output(component_id='my-graph', component_property='figure'),
[Input(component_id='my-date-picker-range', component_property='start_date'),
Input(component_id='my_date_picker_range', component_property='end_date'),
Input(component_id='Parameter', component_property='value')]
)
def interactive_graphing(start_date, end_date, value_parameter):
print(value_parameter)
print(start_date)
print(end_date)
dff = df.loc[start_date:end_date]
print(dff)
dff2 = pd.DataFrame()
dff2['Start Time'] = dff['Start Time']
dff2['Machine'] = dff['Machine']
dff2['Parameter'] = dff[value_parameter]
fig = px.line(dff2, x='Start Time', y='Parameter', color='Machine')
return fig
if __name__ == '__main__':
app.run_server()
source https://stackoverflow.com/questions/71679036/problem-in-running-dash-datepickerrange-with-graph
Comments
Post a Comment