V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
gulangyu
V2EX  ›  Python

百度 ECharts 中的 data 数据如何通过外部数据文件的形式引入?

  •  
  •   gulangyu · 2017-07-27 15:46:26 +08:00 · 9084 次点击
    这是一个创建于 2694 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近对 Python+Flask+ECharts 数据实时可视化感兴趣,很喜欢 Echarts 在数据可视化方面强大的展现力。但最近遇到了一个关于引入外部数据文件的问题,谷歌百度了好久自己没法解决。

    微博点亮中国这个例子中,是直接通过 json 格式导入的。

    http://i.imgur.com/DlMgYar.png

    但在全国主要城市这个例子中则是把 data = [{name: "海门", value: 9}, ...] 直接放在了 html 文件里。

    http://i.imgur.com/DlMgYar.png

    如何修改代码能够让全国主要城市这个例子中的 data 数据也通过引入外部数据文件的形式导入。这样的话,我就可以用 Flask 定时修改外部数据文件,让图标中的数据定时更新呢?

    ps: 这个 data = [{name: "海门", value: 9}, ...] 好像还不是 json 格式的。那外部数据文件用什么文件格式保存好?

    16 条回复    2017-08-09 21:42:24 +08:00
    Arcy
        1
    Arcy  
       2017-07-27 16:05:55 +08:00   ❤️ 1
    1:定义一个 js 文件来保存 data 数据,在调用前引入。
    2:用 json 保存数据,在调用前转成 js 数组形式再 echart 生成图标时载入。
    gulangyu
        2
    gulangyu  
    OP
       2017-07-27 16:13:39 +08:00
    @Arcy 我不会 js,能否帮忙写下 :)
    Koali
        3
    Koali  
       2017-07-27 16:41:01 +08:00   ❤️ 1
    他不同图的 Json 格式是不同,但是可以肯定的是最好传递 json 后面你转数组会容易一点。
    shenyangno1
        4
    shenyangno1  
       2017-07-27 18:12:44 +08:00 via iPhone
    ECharts 直接用 json 的格式也是可以的吧?(我只做过简单的柱状图)
    binjjam
        5
    binjjam  
       2017-07-27 18:26:25 +08:00
    coolyujiyu
        6
    coolyujiyu  
       2017-07-28 10:05:50 +08:00   ❤️ 1
    @gulangyu 这个没编程基础真不好搞,基本的 js 还是要会的呀
    gulangyu
        7
    gulangyu  
    OP
       2017-07-28 10:37:00 +08:00 via Android
    @coolyujiyu 真的是大实话,少了 js,只会 html&css 感觉不方便
    wampyl
        8
    wampyl  
       2017-07-28 14:18:31 +08:00   ❤️ 1
    最近看了下 echarts 的,我们是 ajax 定时取 json 数据存在数组中,然后 setOption()。
    wampyl
        9
    wampyl  
       2017-07-28 14:19:51 +08:00
    @wampyl 我们最近也在做一个简单的图标,用了 echarts。我们参考这个做的 http://echarts.baidu.com/gallery/editor.html?c=doc-example/tutorial-dynamic-data
    gulangyu
        10
    gulangyu  
    OP
       2017-07-28 16:41:09 +08:00 via Android
    @wampyl 我最近做的一个是用 api 每半小时获取一次天气,用 flask 和 ajax 把数据传入 echarts。后端服务器用 nginx 和 crontab,从而实现动态显示天气。
    gulangyu
        11
    gulangyu  
    OP
       2017-07-28 16:42:14 +08:00 via Android
    @wampyl api 获取的数据存在数据库
    wampyl
        12
    wampyl  
       2017-07-28 18:11:19 +08:00
    我们是 js 的 setInteval 函数跑 ajax 每分钟取数据,然后用 echarts 的 setOption()渲染。实现动态显示的效果。基本是按照上面那个官方 demo 写的。
    wampyl
        13
    wampyl  
       2017-07-28 18:11:56 +08:00
    @gulangyu 感觉你们的需求也可以这样实现。
    Koali
        14
    Koali  
       2017-07-29 09:24:32 +08:00 via Android
    可以看这一篇文章 http://www.jianshu.com/p/4fc7cf6b99c6
    gulangyu
        15
    gulangyu  
    OP
       2017-07-29 14:03:16 +08:00 via Android
    @wampyl 对,我也是用 setInterval +ajax 来定时刷新局部页面 (也就是 echarys 图片框)
    symons
        16
    symons  
       2017-08-09 21:42:24 +08:00
    @gulangyu 不会的话,学一下不就好啦
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   853 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 21:44 · PVG 05:44 · LAX 13:44 · JFK 16:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.