如果没有值'',则绘图不会更新
Plotly graph does not update if there isn't a value ''
我想了解为什么会出现此错误。
我知道这是因为我在下拉列表中设置了值 = ' ':
dcc.Dropdown(
id = 'dd_tag_yaxis',
clearable = False,
placeholder = 'Select tag x-axis',
value = '',
options=[ ],
style={
'width': '100%'
})
但是,如果我删除这个值,在下拉列表中选择一个选项时显示的数字将不再出现,因此,使用这个值是我找到的获得数字的唯一方法显示工作。下面是我正在使用的回调示例。
@app.callback(
Output("display", "figure" ),
Input("dd_tag_yaxis", "value")
)
def update_figure(dd_tag_selected):
zone = 'Zone 1'
if (dd_tag_selected == ('TIC 3201_SP' or 'TIC 3201_PV' or 'TI_3207')):
zone = 'Zone 1'
elif (dd_tag_selected == ('TIC 3203_SP' or 'TIC 3203_PV' or 'TI_3208')):
zone = 'Zone 2'
elif (dd_tag_selected == ('TIC 3205_SP' or 'TIC 3205_PV' or 'TI_3208')):
zone = 'Zone 3'
print("Graph should be being returned")
print(dd_tag_selected)
fig = px.line(df, x=x_axis, y= df1['Oven Temperature Controllers [°C]'][zone][dd_tag_selected], title='Temperature Profile')
fig.update_layout(transition_duration=500, xaxis_title = 'Time [h]', yaxis_title = 'Temperature [°C]', )
return fig
我试过 'if dd_tag_selected == '':
return[]
' 在回调中避免收到此错误,但如果我这样做,(尽管错误消失)图形不再显示。
@app.callback(
Output("display", "figure" ),
Input("dd_tag_yaxis", "value")
)
def update_figure(dd_tag_selected):
if dd_tag_selected == '':
return []
zone = 'Zone 1'
if (dd_tag_selected == ('TIC 3201_SP' or 'TIC 3201_PV' or 'TI_3207')):
zone = 'Zone 1'
elif (dd_tag_selected == ('TIC 3203_SP' or 'TIC 3203_PV' or 'TI_3208')):
zone = 'Zone 2'
elif (dd_tag_selected == ('TIC 3205_SP' or 'TIC 3205_PV' or 'TI_3208')):
zone = 'Zone 3'
print("Graph should be being returned")
print(dd_tag_selected)
fig = px.line(df, x=x_axis, y= df1['Oven Temperature Controllers [°C]'][zone][dd_tag_selected], title='Temperature Profile')
fig.update_layout(transition_duration=500, xaxis_title = 'Time [h]', yaxis_title = 'Temperature [°C]', )
return fig
你可以在这里用图表显示明白我的意思:
此处显示正常,但下拉列表中的值 = '' 和错误:
这里显示不工作但是没有错误了,因为我添加了if语句。
我不确定这是否完全按照您希望的方式解决了问题,但在您的 if 语句中,您可以 return 一个空图形。我也在自己构建的 dash 应用程序中完成了此操作。
if dd_tag_selected == '':
return go.Figure()
我想了解为什么会出现此错误。
我知道这是因为我在下拉列表中设置了值 = ' ':
dcc.Dropdown(
id = 'dd_tag_yaxis',
clearable = False,
placeholder = 'Select tag x-axis',
value = '',
options=[ ],
style={
'width': '100%'
})
但是,如果我删除这个值,在下拉列表中选择一个选项时显示的数字将不再出现,因此,使用这个值是我找到的获得数字的唯一方法显示工作。下面是我正在使用的回调示例。
@app.callback(
Output("display", "figure" ),
Input("dd_tag_yaxis", "value")
)
def update_figure(dd_tag_selected):
zone = 'Zone 1'
if (dd_tag_selected == ('TIC 3201_SP' or 'TIC 3201_PV' or 'TI_3207')):
zone = 'Zone 1'
elif (dd_tag_selected == ('TIC 3203_SP' or 'TIC 3203_PV' or 'TI_3208')):
zone = 'Zone 2'
elif (dd_tag_selected == ('TIC 3205_SP' or 'TIC 3205_PV' or 'TI_3208')):
zone = 'Zone 3'
print("Graph should be being returned")
print(dd_tag_selected)
fig = px.line(df, x=x_axis, y= df1['Oven Temperature Controllers [°C]'][zone][dd_tag_selected], title='Temperature Profile')
fig.update_layout(transition_duration=500, xaxis_title = 'Time [h]', yaxis_title = 'Temperature [°C]', )
return fig
我试过 'if dd_tag_selected == '': return[] ' 在回调中避免收到此错误,但如果我这样做,(尽管错误消失)图形不再显示。
@app.callback(
Output("display", "figure" ),
Input("dd_tag_yaxis", "value")
)
def update_figure(dd_tag_selected):
if dd_tag_selected == '':
return []
zone = 'Zone 1'
if (dd_tag_selected == ('TIC 3201_SP' or 'TIC 3201_PV' or 'TI_3207')):
zone = 'Zone 1'
elif (dd_tag_selected == ('TIC 3203_SP' or 'TIC 3203_PV' or 'TI_3208')):
zone = 'Zone 2'
elif (dd_tag_selected == ('TIC 3205_SP' or 'TIC 3205_PV' or 'TI_3208')):
zone = 'Zone 3'
print("Graph should be being returned")
print(dd_tag_selected)
fig = px.line(df, x=x_axis, y= df1['Oven Temperature Controllers [°C]'][zone][dd_tag_selected], title='Temperature Profile')
fig.update_layout(transition_duration=500, xaxis_title = 'Time [h]', yaxis_title = 'Temperature [°C]', )
return fig
你可以在这里用图表显示明白我的意思:
此处显示正常,但下拉列表中的值 = '' 和错误:
这里显示不工作但是没有错误了,因为我添加了if语句。
我不确定这是否完全按照您希望的方式解决了问题,但在您的 if 语句中,您可以 return 一个空图形。我也在自己构建的 dash 应用程序中完成了此操作。
if dd_tag_selected == '':
return go.Figure()