Updating a graph

Hi Everyone,

I am trying to create a graph that can be updated whenever a new data point is recorded.
As a bare example I am reading in the newly added characters ti var/log/system.log file and trying to plot that.
Now anytime a new data point is added a new window is opened in the browser which is annoying. Is there a way to do something like โ€˜โ€˜hold onโ€™โ€™? Code is copied below.

Any help is appreciated! :slight_smile:

import subprocess
import os
import time
import numpy as np
import plotly.offline as py
import plotly.graph_objs as go

i = 0
while i < 300:

mytext1 = len(str(subprocess.check_output(['cat', '/var/log/system.log']),'ascii'))
mytext2 = len(str(subprocess.check_output(['cat', '/var/log/system.log']),'ascii'))
i = i+1
# l.append(mytext2-mytext1) 
trace = go.Scatter(
x = np.arange(i),
y = n[0:i,0]

# print(y)
data = [trace]

py.plot(data, filename='basic-line.html')

Hi @bencealmasi,

Iโ€™d recommend tackling this using Dash. Hereโ€™s a documentation page on updating a figure with Live data. data https://dash.plot.ly/live-updates.

If youโ€™d like the output to be displayed in the Jupyter Notebook then you could also use a FigureWidget and then use property assignment to directly update the trace data. See https://plot.ly/python/figurewidget/

Hope that helps get you started!



I saw this useful answer and it is worknig for me in JupyterNotebook. But what should I do for other editors like spyder or Vscode? Does this feature works when we plot on Browser?