当前位置:网站首页>Document 2 Feb 12 16:54
Document 2 Feb 12 16:54
2022-07-06 07:39:00 【SyncStudy】
Document 2 Feb 12 16:54
Data with updated data table
from dash import Dash, dcc, html, Input, Output, callback, dash_table
import plotly.express as px
app = Dash(__name__, suppress_callback_exceptions=True)
from Functions import *
df2 = read_example_csv()
# dataframe for total energy frame df3
d = {'Energy consumed': [1], 'Current energy': [3],'Current power': [3],'Current cost': [3]}
d = {'Sensor name': ["robot1","robot2"], 'Type': ["robot","robot"],'State': [3,3],'Power': [4,4],'Total energy used today': [5,5],'Total cost today': [6,6]}
df3=pd.DataFrame(data=d)
# test for period
df_test = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv')
fig = px.line(df2, x=df2.index, y='Power', title='Time Series with Range Slider and Selectors')
fig.update_xaxes(
rangeslider_visible=True,
rangeselector=dict(
buttons=list([
dict(count=1, label="1m", step="month", stepmode="backward"),
dict(count=6, label="6m", step="month", stepmode="backward"),
dict(count=1, label="YTD", step="year", stepmode="todate"),
dict(count=1, label="1y", step="year", stepmode="backward"),
dict(step="all")
])
)
)
app.layout = html.Div([
dcc.Location(id='url', refresh=False),
html.Div(id='page-content')
])
index_page = html.Div([
dcc.Link('Pie chart', href='/page-1'),
html.Br(),
dcc.Link('Line chart', href='/page-2'),
html.Br(),
dcc.Link('Table', href='/page-3'),
])
page_1_layout = html.Div([
html.H1('Page 1'),
dcc.Graph(
figure=px.pie(df2, values='Power', names='Machine')
),
html.Div(id='page-1-content'),
html.Br(),
dcc.Link('Go to Line chart', href='/page-2'),
html.Br(),
dcc.Link('Go back to home', href='/'),
])
@callback(Output('page-1-content', 'children'),
[Input('page-1-dropdown', 'value')])
def page_1_dropdown(value):
return f'You have selected {value}'
page_2_layout = html.Div([
html.H1('Page 2'),
# dcc.Graph(
# figure = px.line(df2, x=df2.index, y='Power', title='Time Series with Range Slider and Selectors')
# ),
dcc.Graph(
figure=dict(
data=[
dict(
x=df2.index,
y=df2['Power'].loc[df2['Machine'] == 'robot1'], # df.loc[df['column_name'] == some_value]
name='Robot 1',
marker=dict(
color='rgb(55, 83, 109)'
)
),
dict(
x=df2.index,
y=df2['Power'].loc[df2['Machine'] == 'robot2'], # df.loc[df['column_name'] == some_value]
name='Robot 2',
marker=dict(
color='rgb(26, 118, 255)'
)
)
],
layout=dict(
title='Robot Power',
showlegend=True,
legend=dict(
x=0,
y=1.0
),
margin=dict(l=40, r=0, t=40, b=30)
)
),
style={'height': 300},
id='my-graph'
),
html.Div(id='page-2-content'),
html.Br(),
dcc.Link('Go to Pie Chart', href='/page-1'),
html.Br(),
dcc.Link('Go back to home', href='/')
])
@callback(Output('page-2-content', 'children'),
[Input('page-2-radios', 'value')])
def page_2_radios(value):
return f'You have selected {value}'
page_3_layout = html.Div([
html.H1('Page 3'),
dash_table.DataTable(df3.to_dict('records'), [{"name": i, "id": i} for i in df3.columns]),
html.Div(id='page-3-content'),
html.Br(),
dcc.Link('Go to Line chart', href='/page-3'),
html.Br(),
dcc.Link('Go back to home', href='/'),
])
@callback(Output('page-3-content', 'children'),
[Input('page-3-dropdown', 'value')])
def page_3_dropdown(value):
return f'You have selected {value}'
# Update the index
@callback(Output('page-content', 'children'),
[Input('url', 'pathname')])
def display_page(pathname):
if pathname == '/page-1':
return page_1_layout
elif pathname == '/page-2':
return page_2_layout
elif pathname == '/page-3':
return page_3_layout
else:
return index_page
# You could also return a 404 "URL not found" page here
if __name__ == '__main__':
app.run_server(debug=True)
边栏推荐
- How to prevent Association in cross-border e-commerce multi account operations?
- [MySQL learning notes 32] mvcc
- 解决方案:智慧工地智能巡檢方案視頻監控系統
- 超级浏览器是指纹浏览器吗?怎样选择一款好的超级浏览器?
- PHP Coding Standard
- Méthode d'obtention des propriétés de l'objet JS (.Et [] méthodes)
- Do you really think binary search is easy
- Simple and understandable high-precision addition in C language
- 【mysql学习笔记30】锁(非教程)
- Word delete the contents in brackets
猜你喜欢
861. Score after flipping the matrix
Related operations of Excel
剪映的相关介绍
【MySQL学习笔记32】mvcc
Ble of Jerry [chapter]
Description of octomap averagenodecolor function
If Jerry's Bluetooth device wants to send data to the mobile phone, the mobile phone needs to open the notify channel first [article]
DataX self check error /datax/plugin/reader/_ drdsreader/plugin. Json] does not exist
学go之路(一)go的基本介绍到第一个helloworld
[1. Delphi foundation] 1 Introduction to Delphi Programming
随机推荐
TypeScript 可索引类型
TS 类型体操 之 extends,Equal,Alike 使用场景和实现对比
leecode-C语言实现-15. 三数之和------思路待改进版
Emo diary 1
Opencv learning notes 8 -- answer sheet recognition
【MySQL学习笔记32】mvcc
Iterator Foundation
Methods for JS object to obtain attributes (. And [] methods)
Ble of Jerry [chapter]
word怎么只删除英语保留汉语或删除汉语保留英文
How MySQL merges data
TS 体操 &(交叉运算) 和 接口的继承的区别
合规、高效,加快药企数字化转型,全新打造药企文档资源中心
If Jerry's Bluetooth device wants to send data to the mobile phone, the mobile phone needs to open the notify channel first [article]
Solution: intelligent site intelligent inspection scheme video monitoring system
数字IC设计笔试题汇总(一)
Scala语言学习-08-抽象类
TypeScript 接口属性
Typescript variable scope
继电反馈PID控制器参数自整定