python - 如何提高python中虚线图的效率(速度)
问题描述
我在python中使用破折号。我正在绘制正在记录到 SQLite 数据库中的实时数据,目前,我正在绘制单个值与时间线图。我计划再添加 20 个图表,但目前,随着时间的增加,情节变得更慢,我认为这是由于重新绘制了整个情节。所以任何人都可以让我知道是否有有效的方法来做到这一点?我是 dash-plotly 的新手,所以任何帮助都会对我有很大帮助。
谢谢你。
import random
import dash
import plotly
import plotly.graph_objs as go
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Output, Input
X = list()
X.append(0)
Y = list()
Y.append(0)
app = dash.Dash(__name__, suppress_callback_exceptions=True,)
app.layout = html.Div([html.Div([
dcc.Graph(id='live-graph'),
dcc.Interval(
id='graph-update',
interval=0.05 * 1000
),
])
])
latest_sno = 0
@app.callback(Output('live-graph', 'figure'),
[Input('graph-update', 'n_intervals')])
def update_graph_scatter(input_data):
X.append(X[-1]+1)
Y.append(0+random.randint(-2,2))
data = plotly.graph_objs.Scatter(
x=X,
y=Y,
name='lines',
mode='lines'
)
if (len(X)) > 1000:
x_l = max(X) - 1000
else:
x_l = 0
return {'data': [data], 'layout': go.Layout(title="BMS_01_CellVolt_AVG01",
xaxis=dict(range=[x_l, max(X) + 1]),
yaxis=dict(range=[min(Y) - 0.15, max(Y) + 1]),
yaxis_title="Voltage in (V)",
xaxis_title="TIME",
)}
if __name__ == '__main__':
app.run_server(debug=True,port = 5050)
解决方案
好的经过这么多天的努力,我找到了解决问题的方法。您可以使用可扩展图表来实现它,请按照此链接查找示例代码
https://community.plotly.com/t/extend-or-append-data-instead-of-update/8898/25
推荐阅读
- android - 在授予谷歌地图活动权限后,我无法立即获得我的位置。我做错了什么?
- xamarin.forms - Xamarin Forms (IOS, Droid)- 整个表单的 PanGestureRecognizer
- node.js - 错误:在将标头发送到客户端后无法设置标头(带有下一个)
- php - 如何使用 laravel elquent 通过数据透视列获取记录顺序?
- php - 包装 2 个块并在 1 行上显示它们
- node.js - 动态请求 url 上的 encodeURIComponent,node.js
- jquery - 获取多个元素的文本作为单独的值
- python - 谷歌 colab 上的 cuDNN
- c++ - 如何将条件文本转换为“if”条件表达式?
- graph - 所有最短路径查询的总和