Code/Dash_app.py gelöscht

main
Michael Höhener 2024-01-17 11:04:40 +01:00
parent 907047e889
commit 758d7964b5
1 changed files with 0 additions and 113 deletions

View File

@ -1,113 +0,0 @@
import pandas as pd
from dash import Dash, html, dash_table, dcc, callback
from dash.dependencies import Input, Output
import plotly.express as px
from datetime import datetime
import plotly.graph_objects as go
df = pd.read_csv('Data.csv')
df_reversed = df.iloc[::-1]
pressure = df['Barometric Pressure'].iloc[-1]
humidity = df['Humidity'].iloc[-1]
app = Dash(__name__)
app.layout = html.Div([
html.H1('Wetter', style={'textAlign': 'center'}),
html.Div([
dcc.Graph(id='temperature-indicator'),
dcc.Graph(id='pressure-indicator'),
dcc.Graph(id='humidity-indicator')
], style={'display': 'flex'}),
dcc.RadioItems([{'label': 'Temperature', 'value': 'Temperature'},
{'label': 'Barometric Pressure', 'value': 'Barometric Pressure'},
{'label': 'Humidity', 'value': 'Humidity'}],
inline=True,
id='radioitem',
value='Barometric Pressure'),
dcc.Graph(id='Pressure'),
dash_table.DataTable(
id='wetter',
data=df_reversed.to_dict('records'),
columns=[{'name': i, 'id': i} for i in df.columns],
sort_mode='single',
sort_action='native',
style_cell={'textAlign': 'center'}),
dcc.Interval(
id='update',
interval=10000,
n_intervals=0)
])
@callback(Output('temperature-indicator', 'figure'),
Input('update', 'n_intervals'))
def temp_update(n):
df = pd.read_csv('Data.csv')
temperature = df['Temperature'].iloc[-1]
figure = go.Figure(
go.Indicator(
mode="gauge+number",
value=temperature,
title={'text': "Temperature (°C)"},
gauge={'axis': {'range': [-20, 40]},
'bar': {'color': 'red'}}))
return figure
@callback(Output('pressure-indicator', 'figure'),
Input('update', 'n_intervals'))
def pressure_update(n):
df = pd.read_csv('Data.csv')
pressure = df['Barometric Pressure'].iloc[-1]
figure = go.Figure(
go.Indicator(
mode="gauge+number",
value=pressure,
number={'valueformat': '.2f'},
title={'text': "Barometric Pressure"},
gauge={'axis': {'range': [500, 1300]}}))
return figure
@callback(Output('humidity-indicator', 'figure'),
Input('update', 'n_intervals'))
def temp_update(n):
df = pd.read_csv('Data.csv')
humidity = df['Humidity'].iloc[-1]
figure = go.Figure(
go.Indicator(
mode="gauge+number",
value=humidity,
title={'text': "Humidity"},
gauge={'axis': {'range': [0, 100]},
'bar': {'color': 'blue'}}))
return figure
@callback(Output('wetter', 'data'),
Input('update', 'n_intervals'))
def get_update(n):
df = pd.read_csv('Data.csv')
df_reversed = df.iloc[::-1]
return df_reversed.to_dict('records')
@callback(Output('Pressure', 'figure'),
Input('update', 'n_intervals'),
Input('radioitem', 'value'))
def update_graph(n, x):
df = pd.read_csv('Data.csv')
today = datetime.today().date()
df_filtered = df.tail(60).copy()
df_filtered['Date'] = pd.to_datetime(df_filtered['Date'], dayfirst=True)
df_filtered = df_filtered[df_filtered['Date'].dt.date == today]
fig = px.line(df_filtered, x='Time', y=x)
return fig
if __name__ == '__main__':
app.run_server(debug=True)