Visualizzazione post con etichetta Plotly. Mostra tutti i post
Visualizzazione post con etichetta Plotly. Mostra tutti i post

mercoledì 13 novembre 2024

Update Plotly Dash Csv

 

 


from dash import Dash, html, dcc, callback, Output, Input,State
import plotly.express as px
import pandas as pd

import sqlite3
df = pd.read_csv('./sir.csv')


#cnx = sqlite3.connect('winet.db')
#df = pd.read_sql_query("SELECT * FROM sensori", cnx)


app = Dash(__name__)

app.layout = [
html.H1(children='Sensori', style={'textAlign':'center'}),
html.Div([
dcc.Graph(id='graph-content',
figure={
'data': [
{'x': df.Data, 'y': df.Livello,
'type': 'line', 'name': '68'},
],
'layout': {
'title': 'Soggiacenza'
}
}),
dcc.Interval(
id='interval-component',
interval=2*1000,
n_intervals=0
)
])
]

@app.callback(
Output(component_id='graph-content', component_property='figure'),
Input('interval-component', 'n_intervals'), [State('graph-content', 'figure')]
)

def update_graph(n,figure):
df = pd.read_csv('./sir.csv')
figure['data'][0]['x'] = df.Data
figure['data'][0]['y'] = df.Livello
return figure


if __name__ == '__main__':
app.run(debug=True)

 

venerdì 6 dicembre 2013

Plotly

update : https://debiaonoldcomputers.blogspot.com/2024/11/update-plotly-dash-csv.html

Vista la pubblicita' di questi ultimi tempi ho voluto provare il servizio di grafici online Plotly come possibile alternativa a Xively

Vi sono API per numerosi linguaggi ma per semplicita' ho preferito usare Python

Prima di iniziare a scrivere il codice si deve importare la libreria Python per Plotly mediante il comando

pip install plotly
una volta autenticati con Plotly (anche mediante account Google o Facebook) si deve reperire la propria chiave entrando in Settings




si seguito lo script di esempio piu' semplice
Sono da modificare la parte in giallo (attenzione che il nome utente non coincide necessariamente con l'utente di Google... nel caso in cui ci si autentica in questo modo)
------------------------------------
import plotly
py = plotly.plotly(username='LucaInnocenti', key='ifntvfcaa9')

x1 = [1,2,3,10]
y1 = [4,5,6,10]

x2 = [1,2,3]
y2 = [2,10,12]

line1 = {"x": x1,"y": y1, "type":"scatter", "name":"Experiment",
"line":{"color":"rgb(3,78,123)", "width":6, "dash":"dot"},
"marker":{"opacity":1.0,"symbol":"square", "size":12,"color":"rgb(54,144,192)",
"line":{"width":3, "color":"darkblue"}}}

line2 = {"x":x2, "y":y2,"type":"scatter","name":"Control",
"line":{"color":"purple", "width":4, "dash":"dashdot"},
"marker":{"opacity":0.9,"symbol":"cross","size":16,"color":"fuchsia",
"line":{"color":"","width":0}}}

py.plot([line1, line2])
------------------------------------

Una volta che si lancia lo script viene generato un nuovo grafico. Non sembra possibile appendere dei dati ad un grafico gia' esistente creato da un altro script, questo pone dei limiti nel creare grafici incrementali con misure ogni tot secondi per esempio da letture di strumenti

In definitiva, per plottare dati da strumentazione considero superiore Xively

Debugger integrato ESP32S3

Aggiornamento In realta' il Jtag USB funziona anche sui moduli cinesi Il problema risiede  nell'ID USB della porta Jtag. Nel modulo...