【发布时间】:2021-12-07 12:20:58
【问题描述】:
大家好,我正在制作 DASH 实时烛台图表,我偶然发现了一个问题,希望您能帮助我。
问题是当我运行该项目时,它会很好地加载烛台图和指标。 但是,一旦它按间隔更新,它就会消失,如果我尝试从图例选项卡中将其翼翼返回,它将在每次更新时执行此操作。 图表也可以正常工作,如果单独使用且没有指标,则可以正常更新,但是当将它们添加到图表中时,它会在 1 次更新后删除烛台图表的可见性。
正在从 Websocket 流中提取数据并转换为 SQL,然后转换为 pandas 数据帧。
这是发生的事情的图像:
这是代码:
import dash
from dash.dependencies import Output, Input
from dash import dcc
from dash import html
import pandas as pd
import plotly.graph_objs as go
import flask
import waitress
from waitress import serve
server = flask.Flask(__name__) # define flask app.server
app = dash.Dash(__name__, server=server) # call flask server
app.layout = html.Div(
html.Div([
dcc.Graph(id='live-update-graph-scatter', animate=True),
dcc.Interval(
id='interval-component',
disabled=False,
interval=1*5000,
n_intervals=0
)
])
)
@app.callback(Output('live-update-graph-scatter', 'figure'),
[Input('interval-component', 'n_intervals')])
def update_graph_scatter(n):
rec = pd.read_sql_table('crypto', engine)
rec1 = pd.DataFrame(rec)
print(rec1)
rec1.columns = ['date', 'open', 'high', 'low', 'close', 'volume', 'EMA', 'EMA2']
rec1['date'] = pd.to_datetime(rec1['date'])
rec1.set_index('date', inplace=True)
###SUBPLOT AND Candlestick CHART
fig = make_subplots(rows=4, cols=1)
fig.add_trace(go.Candlestick(
x=rec1.index,
open=rec1['open'],
high=rec1['high'],
low=rec1['low'],
close=rec1['close']),
row=1,
col=1,
)
###### ADD INDICATOR TRACES:
fig.add_trace(
go.Scatter(
x=rec1.index,
y=rec1['EMA'],
marker=dict(color='blue')
),
row=1,
col=1
)
fig.add_trace(
go.Scatter(
x=rec1.index,
y=rec1['EMA2'],
marker=dict(color='red')
),
row=1,
col=1
)
return fig
if __name__ == '__main__':
serve(app.server, host="localhost", port=5005)
你对我能做什么有什么建议吗?我很乐意听到。
最好的问候。
马蒂亚斯
【问题讨论】:
标签: python pandas websocket charts plotly-dash