【发布时间】:2019-04-11 12:16:34
【问题描述】:
我正在尝试根据从下拉列表中选择的值绘制 matplotlib 图。我已经制作了下拉菜单,并且绘图也为值做好了准备,但我不知道如何将它们连接在一起。
以下是下拉菜单的代码:
app.layout = html.Div([
dcc.Dropdown(
id='first-dropdown',
options = [
{'label': 'Chest Pain', 'value': 'cp'},
{'label': 'Resting Blood Pressure', 'value': 'trestbps'},
{'label': 'Serum Cholestrol in mg/dl', 'value': 'chol'},
{'label': 'Fasting Blood Pressure', 'value': 'fbs'},
{'label': 'Resting electrocardiographic results', 'value': 'restecg'},
{'label': 'Maximum heart rate achieved', 'value': 'thalach'},
{'label': 'Exercise induced angina', 'value': 'exang'},
{'label': 'Old Peak', 'value': 'oldpeak'},
{'label': 'Slope of the peak exercise ST segment', 'value': 'slope'},
{'label': 'Number of major vessels (0-3) colored by flourosopy', 'value': 'ca'},
{'label': 'Thalassemia', 'value': 'thal'}
],
value= 'thalach'
)
])
对于下拉列表中的每个值,我都有一个单独的函数来返回一个绘图。例如: 我想要做的是,如果从下拉菜单中选择标签“达到的最大心率”,其值为“thalach”。我有一个名为 plotThalach 的函数,它返回如下图:
def plotThalach(df):
df_men = df[df['sex'] == 1.0]
df_women = df[df['sex'] == 0.0]
plt.figure(figsize=(20, 8))
plt.bar(df_men['age'] + 0.00, df_men['thalach'], color='b', width=0.25, label='Men')
plt.bar(df_women['age'] + 0.25, df_women['thalach'], color='r', width=0.25, label='Women')
plt.legend(loc='upper right')
plt.xlabel("Age")
plt.ylabel("Max Heart Rate")
plt.title("Age vs Max Heart Rate")
return plt
现在我如何连接这两者,当从下拉列表中选择一个值时,我的函数会被调用,并且绘图会显示在屏幕上。
【问题讨论】:
标签: matplotlib plotly plotly-dash