Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在破折号中实时绘图

在破折号中实时绘图
EN

Stack Overflow用户
提问于 2021-01-01 17:32:26
回答 1查看 776关注 0票数 1

Noob警报,我想在Dash中创建3个图表,其中包含一些数据。因此,我有一个data.csv文件,它每小时更新一次,并将数据存储在其中:

代码语言:javascript
运行
AI代码解释
复制
2021-01-01 18:07:09|15547|45.03|742031.4|2935|30.7|112045.75|5815|45.0|314413.09|1835|28.8|75511.78
2021-01-01 19:25:57|13995|44.03|660573.87|3046|27.0|114017.46|5024|37.84|256953.02|1911|27.8|77646.2
2021-01-01 20:25:59|13710|44.03|647995.57|3180|25.0|117480.46|5349|30.0|269511.82|1672|28.8|70775.0
2021-01-01 21:25:59|13710|44.03|647995.57|3180|25.0|117480.46|5349|30.0|269511.82|1672|28.8|70775.0
2021-01-01 22:26:00|13863|43.99|637484.0|3613|28.9|134806.24|5316|38.97|245546.28|2100|28.75|96306.19
2021-01-01 23:25:59|14769|42.99|676265.94|3570|28.55|133435.66|4336|38.97|206593.23|2292|28.75|101826.19
2021-01-02 00:25:59|13945|42.99|640842.18|3601|28.5|134301.16|3843|35.99|186926.98|2072|28.75|95096.52

使用此代码:

代码语言:javascript
运行
AI代码解释
复制
import dash
import dash_core_components as dcc
import dash_html_components as html
import pandas as pd


DATA_FILE = "data.csv"

app = dash.Dash()


data = pd.read_csv(
    DATA_FILE,
    names=[
        "date",
        "columnOneData",
        "columnTwoData",
        "columnThreeData",
        "columnFourData",
        "columnFiveData",
        "columnSixData",
        "columnSevenData",
        "columnEightData",
        "columnNineData",
        "columnTenData",
        "columnElevData",
        "columnTwelData",
    ],
    sep="|",
)
date = data.date.tolist()

columnOneData = data.columnOneData.tolist()
columnTwoData = data.columnTwoData.tolist()
columnThreeData = data.columnThreeData.tolist()

columnFourData = data.columnFourData.tolist()
columnFiveData = data.columnFiveData.tolist()
columnSixData = data.columnSixData.tolist()

columnSevenData = data.columnSevenData.tolist()
columnEightData = data.columnEightData.tolist()
columnNineData = data.columnNineData.tolist()

columnTenData = data.columnTenData.tolist()
columnElevData = data.columnElevData.tolist()
columnTwelData = data.columnTwelData.tolist()


app.layout = html.Div(
    children=[
        html.H1(children="Total numbers"),
        dcc.Graph(
            id="count",
            figure={
                "data": [
                    {
                        "x": date,
                        "y": columnOneData,
                        "type": "line",
                        "name": "ColOneData",
                    },
                    {
                        "x": date,
                        "y": columnFourData,
                        "type": "line",
                        "name": "ColFourData",
                    },
                    {
                        "x": date,
                        "y": columnSevenData,
                        "type": "line",
                        "name": "ColSevenData",
                    },
                    {
                        "x": date,
                        "y": columnTenData,
                        "type": "line",
                        "name": "ColTenData",
                    },
                ],
            },
        ),
        html.H1(children="Lowest price"),
        dcc.Graph(
            id="minprice",
            figure={
                "data": [
                    {
                        "x": date,
                        "y": columnTwoData,
                        "type": "line",
                        "name": "ColTwoData",
                    },
                    {
                        "x": date,
                        "y": columnFiveData,
                        "type": "line",
                        "name": "ColFiveData",
                    },
                    {
                        "x": date,
                        "y": columnEightData,
                        "type": "line",
                        "name": "ColEightData",
                    },
                    {
                        "x": date,
                        "y": columnElevData,
                        "type": "line",
                        "name": "ColElevData",
                    },
                ],
            },
        ),
        html.H1(children="BuyOut"),
        dcc.Graph(
            id="buyout",
            figure={
                "data": [
                    {
                        "x": date,
                        "y": columnThreeData,
                        "type": "line",
                        "name": "ColThreeData",
                    },
                    {
                        "x": date,
                        "y": columnSixData,
                        "type": "line",
                        "name": "ColSixData",
                    },
                    {
                        "x": date,
                        "y": columnNineData,
                        "type": "line",
                        "name": "ColNineData",
                    },
                    {
                        "x": date,
                        "y": columnTwelData,
                        "type": "line",
                        "name": "ColTwelData",
                    },
                ],
            },
        ),
    ]
)

if __name__ == "__main__":
    app.run_server(debug=True)

我成功地创建了我正在寻找的图形,但显然是通过代码实现的--当新数据出现时,或者主要是当我刷新页面时,它并不是在更新。我对Dash非常陌生,我听说过回调和观看一些视频,但实际上我无法在我的案例中复制相同的更新代码。我希望通过显示多个多行图形示例或一些我可以使用的示例来寻求一些帮助。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-01 18:49:13

尝试一下破折号间隔分量,它的设计就是为了做到这一点。下面是一个刷新data.csv的小例子。只需运行此命令并更改.csv文件(该文件应包含x和y坐标的两列)。

代码语言:javascript
运行
AI代码解释
复制
import dash
import pandas as pd
import plotly.graph_objects as go
import dash_core_components as dcc
import dash_html_components as html


app = dash.Dash(__name__)

def _create_fig():
    df = pd.read_csv('data.csv')
    df.columns=['x','y']
    return go.Figure(
        data=go.Scatter(
            x=df['x'],
            y=df['y']))


app.layout = html.Div([
    dcc.Graph(
        id='g1',
        figure=_create_fig()),
    dcc.Interval(
        id='interval-component',
        interval=1*1000, # in milliseconds
        n_intervals=0
    )
])


@app.callback(
    dash.dependencies.Output('g1', 'figure'),
    dash.dependencies.Input('interval-component', 'n_intervals'))
def refresh_data(n_clicks):
    return _create_fig()


if __name__ == "__main__":
    app.run_server(host='0.0.0.0', debug=True, port=8080)

用于data.csv的哑数据

代码语言:javascript
运行
AI代码解释
复制
1,2
3,4
5,6

以及替换它的文件

代码语言:javascript
运行
AI代码解释
复制
11,2
3,44
55,6

在同一页面中,您还可以通过将app.layout设置为定义布局的函数实例来更新刷新时的数据。这将避免需要回调函数或使用间隔组件:

代码语言:javascript
运行
AI代码解释
复制
import dash
import pandas as pd
import plotly.graph_objects as go
import dash_core_components as dcc
import dash_html_components as html


app = dash.Dash(__name__)

def _create_fig():
    df = pd.read_csv('data.csv')
    df.columns=['x','y']
    return go.Figure(
        data=go.Scatter(
            x=df['x'],
            y=df['y']))

def serve_layout():
    return html.Div([
        dcc.Graph(
            figure=_create_fig()),
    ])

app.layout = serve_layout


if __name__ == "__main__":
    app.run_server(host='0.0.0.0', debug=True, port=8080)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65535289

复制
相关文章
如何更深层次的思考,缩小你与神的差距
话不多说,直接上图 图片发自简书App 人不是一生来就会画出那么骏的马,如图所述,从一开始的两个小圈圈,到接下来的小腿以及脖子,到后来的萌萌哒的小脸,再后来的毛发,到最后与马神似。这一步步的过程是我们
gfu
2019/08/28
4360
如何更深层次的思考,缩小你与神的差距
递归层次汇总查询
在一个数据仓库项目中,人员、组织机构、事实表是这样设计的: 组织机构是一个树形结构 每一个人员只属于一层组织机构,该层为叶子节点和非叶子节点均可 事实表存储每个人员的数据 要求按组织机构层次汇总数据,别且可下钻。 -- 建立测试表 -- 1. 组织机构 CREATE TABLE org ( org_id NUMBER, org_name VARCHAR2 (100), p_org_id NUMBER ); -- 2. 职员 CREATE TABLE emp
用户1148526
2019/05/25
9010
CUDA学习第24课:直方图更深层次的思考
UDACITY学院在2013年-2015年期间已经做了一套完整的CUDA培训的教材非常适合CUDA初学者。我们会陆续整理(合并视频,贴上中文字幕等),然后发布出来,供初学者学习。
GPUS Lady
2020/03/17
5670
SQL 高级查询 ——(层次化查询,递归)
层次化结构可以理解为树状数据结构,由节点构成。比如常见的组织结构由一个总经理,多个副总经理,多个部门部长组成。再比如在生产制造中一件产品会有多个子零件组成。举个简单的例子,如下图所示
Lenis
2019/12/25
3.9K0
SQL 高级查询 ——(层次化查询,递归)
‘0.99999…’真的等于‘1’吗?这个问题揭示了数学所面临的更深层次的哲学挑战!
如果需要为无限小数“0.99999...”分配一个精确的值,会怎么做?数学直觉说它可能大约等于“1”。但如果你和我一样好奇,就会出现以下一系列问题:
deephub
2022/03/12
2.7K0
‘0.99999…’真的等于‘1’吗?这个问题揭示了数学所面临的更深层次的哲学挑战!
巧妙利用剪切进行强制卸载
虽然现在网络上有众多的强制卸载软件,用过几个像冰刃、网吧幽灵等软件进行过强制卸载,对大部分软件还是很管用的,不过有时候就遇到很难卸载的, 用这些软件都卸载不了。为此专门去网上看了些教程,不过貌似要修改
Youngxj
2018/06/07
9300
二叉树遍历算法递归实现+层次遍历
<img src="https://irabbit756.oss-cn-shanghai.aliyuncs.com/数据结构/二叉树遍历/1二叉树层次遍历.png" style="zoom: 67%;" />
犰兔
2020/11/20
1.4K0
linux如何强制结束程序
第一步查询比较详细的进程信息:第一步查询比较详细的进程信息:第一步查询比较详细的进程信息:第一步查询比较详细的进程信息:第一步查询比较详细的进程信息:第一步查询比较详细的进程信息:第一步查询比较详细的进程信息:第一步查询比较详细的进程信息:第一步查询比较详细的进程信息:第一步查询比较详细的进程信息:第一步查询比较详细的进程信息:第一步查询比较详细的进程信息:ps -aux第二步结束程序kill -s 9 查到的PID号
狼啸风云
2019/04/01
5.5K0
如何强制删除电脑文件?
哈喽!各位小伙伴大家好呀! 相信大家一定遇到过删除某些文件时, 提示“该文件正被别的进程使用,不能删除”, 又或者提示“找不到该项目”等。 如果遇到这些情况应该如何删除呢? 首先,在删除之前要
简单并不简单
2019/10/29
5.6K0
如何强制删除电脑文件?
如何通过node.js对数据进行MD5加密
实际工作开发中,是不会有人直接将密码明文直接放到数据库当中的。因为这种做法是非常不安全的,一般都要对其进行MD5加密!比如某用户的密码是“123456“(当然这样的密码也没有安全性可言),经过MD5处理后即为:“e10adc3949ba59abbe56e057f20f883e”。这样做的好处主要有以下两点:
用户1272076
2019/03/26
3.7K0
Ubuntu 如何强制时间同步
最好的办法就是启动 NTP 进程。 强制同步 sudo ntpdate -s time.nist.gov 上面的命令将会强制同步本地计算机上的时间。 查看进程状况 sudo service ntp status 上面的命令能够查看 NTP 的状态。 启动进程 sudo service ntp start 上面的命令将会启动 NTP 进程。 https://www.ossez.com/t/ubuntu/13526
HoneyMoose
2021/07/03
1.6K0
Ubuntu 如何强制时间同步
如何更深入地理解Java编程中的框架部分
在很多年以前,Java程序员做项目使用的是SSH框架。SSH框架一般指的是Struts、Spring、Hibernate,到后来Struts2代替了Struts,而最近5年,Struts2已被Spring MVC代替, Hibernate基本也被iBatis/MyBatis代替。可见技术的更新还是非常迅速的。 于是,重点就出来了。在这当中Spring已久坚挺,学习Spring你需要了解两个概念AOP和IOC,更进一步就是Spring的核心技术“动态代理”。 对于持久层框架Hibernate/iBatis
企鹅号小编
2018/02/02
9740
如何更深入地理解Java编程中的框架部分
PostgreSql pageinspect 更深的理解PG
如果使用MYSQL 相对页面的层次进行一些了解,估计你就的找大佬们的工具集合,并且为此膜拜大佬们,但PG并不需要这样,PG自身自带的pageinspect 工具,就可以让你对页面级别的层次来进行一个 “透心凉” 的查看和分析,并不在为此苦恼。
AustinDatabases
2020/05/09
1.6K0
Nginx配置Https并进行Http强制跳转Https
首先我们先了解为什么要做https? https现在是一个趋势这样在别人去访问的时候是会显示一个安全的连接,可以去看看各大网站等… 先获取证书 这里就不介绍了 获取的地方有很多 可以进行正规渠道的购买或者使用openssl工具进行获取
全栈程序员站长
2022/06/29
1.1K0
Nginx配置Https并进行Http强制跳转Https
Nginx配置Https并进行Http强制跳转Https
首先我们先了解为什么要做https? https现在是一个趋势这样在别人去访问的时候是会显示一个安全的连接,可以去看看各大网站等… 先获取证书 这里就不介绍了 获取的地方有很多 可以进行正规渠道的购买或者使用openssl工具进行获取
互联网-小阿宇
2022/11/21
1.8K0
Nginx配置Https并进行Http强制跳转Https
如何让oracle的select强制走索引
大多数情况下,oracle数据库内置的查询优化策略还是很成功的,但偶尔也有犯2的时候,即使有索引,也会做全表扫描,可以参考以下语句的写法,强制让select语句使用索引 1 CREATE OR REPLACE VIEW V_RES_CBA AS 2 SELECT /*+INDEX(SEG IDX_T_RES_ALLOSEG_ALLOID)*/ 3 ALLO.ALLOID AS RESID, 4 NULL AS AWB, 5 ALLO.ALLOTMENT AS ALLO_ID,
菩提树下的杨过
2018/01/19
1.3K0
利用spark进行层次社团发现(louvain算法测试)
社团是复杂网络科学中一种重要的拓扑结构,也是物以类聚,人以群分自然现象在网络中的一种反映。因此对复杂网络进行社团发现是SNA(社会网络分析)中重要的内容之一。
sparkexpert
2022/05/07
3510
SQL如何实现MYSQL的递归查询,SQL实现MYSQL递归
所周知,目前的mysql版本中并不支持直接的递归查询,但是通过递归到迭代转化的思路,还是可以在一句SQL内实现树的递归查询的。这个得益于Mysql允许在SQL语句内使用@变量。以下是示例代码。
IT小马哥
2020/03/18
5.1K0
Epic Games:在教育领域寻求与更多中国高校,进行更深入的合作
临近年底,VRPinea例行的厂商回访已临近尾声,本文为最后一篇年终回访稿件。前十二篇专访为黑盾、HADO、小派科技、青瞳视觉、VeeR、NOLO VR、火柴全景VR、Sandman Studios、美益添VR、珞麟科技、指挥家VR、睿悦信息Nibiru。本次厂商年终回访对象,涵盖VR/AR硬件、VR/AR游戏、VR/AR解决方案、VR影视等领域。本文的采访对象为Epic Games。
VRPinea
2019/04/29
8880
Epic Games:在教育领域寻求与更多中国高校,进行更深入的合作
如何使用 .htaccess 强制访问 HTTPS
如果你为你的域名安装 SSL 证书,你的下一步应该是配置应用将所有的网络流量通过 HTTPS 传输。
雪梦科技
2020/07/08
4K0

相似问题

SqlDataAdapter和SqlDataReader

20

如何同时运行SqlDataReader和SqlDataAdapter?

20

Compact vs SqlDataAdapter

10

SP返回输出,但SqlDataReader/SqlDataAdapter未返回

10

使用SqlDataAdapter对SqlDataReader源代码进行分页

25
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档