在破折号上绘制单列数据
Plot single column data on dash
我有这个样本数据,我想创建一个简单的仪表板,这样我就可以从下拉菜单中绘制每一列数据
Time,Tp,Cl,pH,Redox,Leit,Trueb,Cl_2,Fm,Fm_2
2016-02-15T11:54:00Z,4.4,0.14,8.38,755.0,232.0,0.009000000000000001,0.11,1428.0,1020.0
2016-02-15T11:55:00Z,4.4,0.14,8.38,755.0,232.0,0.009000000000000001,0.111,1436.0
2016-02-15T11:56:00Z,4.4,0.14,8.38,755.0,232.0,0.014,0.113,1471.0,1019.0
2016-02-15T11:57:00Z,4.4,0.14,8.37,755.0,232.0,0.015,0.111,1457.0,1015.0
2016-02-15T11:58:00Z,4.4,0.14,8.38,755.0,232.0,0.013,0.111,1476.0,1019.0
这是实现它的代码。但是,当我 运行 它时,我收到一条与回调函数有关的错误消息。
import dash
import plotly.graph_objects as go
import dash_html_components as html
import dash_core_components as dcc
from dash.dependencies import Input, Output
import pandas as pd
data = pd.read_csv("waterdata.csv")
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
app.layout = html.Div([
dcc.Dropdown(
id='my_dropdown',
options=[{'label': col, 'value': col} for col in data.columns],
#placeholder="Select a variable",
value = 'Tp', #initial value
clearable=False,
searchable=False,
),
html.H4("Timeseries data"),
dcc.Graph(id='timeseries'),
])
@app.callback(
Output("timeseries", "children"),
[Input("my_dropdown", "value")])
def update_output(dropdown_value):
df = data
fig = go.Figure([go.Scatter(x=df['Time'], y=df[dropdown_value],name= str (dropdown_value))])
return fig
if __name__ == '__main__':
app.run_server(debug=True)
我认为输出return值需要在回调函数中是'figure'。
@app.callback(Output("timeseries", "figure"),
[Input("my_dropdown", "value")])
完整代码:
import dash
import plotly.graph_objects as go
import dash_html_components as html
import dash_core_components as dcc
from dash.dependencies import Input, Output
import pandas as pd
import io
data='''
Time,Tp,Cl,pH,Redox,Leit,Trueb,Cl_2,Fm,Fm_2
2016-02-15T11:54:00Z,4.4,0.14,8.38,755.0,232.0,0.009000000000000001,0.11,1428.0,1020.0
2016-02-15T11:55:00Z,4.4,0.14,8.38,755.0,232.0,0.009000000000000001,0.111,1436.0
2016-02-15T11:56:00Z,4.4,0.14,8.38,755.0,232.0,0.014,0.113,1471.0,1019.0
2016-02-15T11:57:00Z,4.4,0.14,8.37,755.0,232.0,0.015,0.111,1457.0,1015.0
2016-02-15T11:58:00Z,4.4,0.14,8.38,755.0,232.0,0.013,0.111,1476.0,1019.0
'''
df = pd.read_csv(io.StringIO(data), sep=',')
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
app = JupyterDash(__name__, external_stylesheets=external_stylesheets)
app.layout = html.Div([
dcc.Dropdown(
id='my_dropdown',
options=[{'label': col, 'value': col} for col in df.columns],
#placeholder="Select a variable",
value = 'Tp', #initial value
clearable=False,
searchable=False,
),
html.H4("Timeseries data"),
dcc.Graph(id='timeseries'),
])
@app.callback(Output("timeseries", "figure"),
[Input("my_dropdown", "value")])
def update_output(value):
# df = data
fig = go.Figure([go.Scatter(x=df['Time'], y=df[value], name=str(value))])
return fig
if __name__ == '__main__':
app.run_server(debug=True)
我有这个样本数据,我想创建一个简单的仪表板,这样我就可以从下拉菜单中绘制每一列数据
Time,Tp,Cl,pH,Redox,Leit,Trueb,Cl_2,Fm,Fm_2
2016-02-15T11:54:00Z,4.4,0.14,8.38,755.0,232.0,0.009000000000000001,0.11,1428.0,1020.0
2016-02-15T11:55:00Z,4.4,0.14,8.38,755.0,232.0,0.009000000000000001,0.111,1436.0
2016-02-15T11:56:00Z,4.4,0.14,8.38,755.0,232.0,0.014,0.113,1471.0,1019.0
2016-02-15T11:57:00Z,4.4,0.14,8.37,755.0,232.0,0.015,0.111,1457.0,1015.0
2016-02-15T11:58:00Z,4.4,0.14,8.38,755.0,232.0,0.013,0.111,1476.0,1019.0
这是实现它的代码。但是,当我 运行 它时,我收到一条与回调函数有关的错误消息。
import dash
import plotly.graph_objects as go
import dash_html_components as html
import dash_core_components as dcc
from dash.dependencies import Input, Output
import pandas as pd
data = pd.read_csv("waterdata.csv")
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
app.layout = html.Div([
dcc.Dropdown(
id='my_dropdown',
options=[{'label': col, 'value': col} for col in data.columns],
#placeholder="Select a variable",
value = 'Tp', #initial value
clearable=False,
searchable=False,
),
html.H4("Timeseries data"),
dcc.Graph(id='timeseries'),
])
@app.callback(
Output("timeseries", "children"),
[Input("my_dropdown", "value")])
def update_output(dropdown_value):
df = data
fig = go.Figure([go.Scatter(x=df['Time'], y=df[dropdown_value],name= str (dropdown_value))])
return fig
if __name__ == '__main__':
app.run_server(debug=True)
我认为输出return值需要在回调函数中是'figure'。
@app.callback(Output("timeseries", "figure"),
[Input("my_dropdown", "value")])
完整代码:
import dash
import plotly.graph_objects as go
import dash_html_components as html
import dash_core_components as dcc
from dash.dependencies import Input, Output
import pandas as pd
import io
data='''
Time,Tp,Cl,pH,Redox,Leit,Trueb,Cl_2,Fm,Fm_2
2016-02-15T11:54:00Z,4.4,0.14,8.38,755.0,232.0,0.009000000000000001,0.11,1428.0,1020.0
2016-02-15T11:55:00Z,4.4,0.14,8.38,755.0,232.0,0.009000000000000001,0.111,1436.0
2016-02-15T11:56:00Z,4.4,0.14,8.38,755.0,232.0,0.014,0.113,1471.0,1019.0
2016-02-15T11:57:00Z,4.4,0.14,8.37,755.0,232.0,0.015,0.111,1457.0,1015.0
2016-02-15T11:58:00Z,4.4,0.14,8.38,755.0,232.0,0.013,0.111,1476.0,1019.0
'''
df = pd.read_csv(io.StringIO(data), sep=',')
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
app = JupyterDash(__name__, external_stylesheets=external_stylesheets)
app.layout = html.Div([
dcc.Dropdown(
id='my_dropdown',
options=[{'label': col, 'value': col} for col in df.columns],
#placeholder="Select a variable",
value = 'Tp', #initial value
clearable=False,
searchable=False,
),
html.H4("Timeseries data"),
dcc.Graph(id='timeseries'),
])
@app.callback(Output("timeseries", "figure"),
[Input("my_dropdown", "value")])
def update_output(value):
# df = data
fig = go.Figure([go.Scatter(x=df['Time'], y=df[value], name=str(value))])
return fig
if __name__ == '__main__':
app.run_server(debug=True)