文档章节

基于TuShare和ECharts实现数据可视化

openthings
 openthings
发布于 2017/02/17 17:49
字数 1124
阅读 2737
收藏 2
点赞 1
评论 0

基于TuShare和ECharts实现数据可视化

 

1、ECharts介绍

ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器,底层依赖轻量级的 Canvas 类库 ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。

ECharts 3 中更是加入了更多丰富的交互功能以及更多的可视化效果,并且对移动端做了深度的优化。

ECharts的成名,得益于几年前百度人口迁徙大数据效果的展示,当年看到那个基于地图连线忽闪忽闪的效果,简直了,太高大上了。最近一年在北京偶尔拜访一些所谓的大数据公司,进门显眼位置看见的那些大屏幕数据展示,估计很多都是基于ECharts开发的。

2、与Python的结合

ECharts主要是应用在web和app领域,跟Python应用的结合,目前在Django,Flask等web框架里更为常见。今天要介绍的,也是在IPython Notebook里基于web的效果展示,而在IPython qtconsole等环境下似乎无能为力。

实际上,在IPython Notebook里使用ECharts相比纯web开发环境,要复杂麻烦一些。但是在IPython Notebook里作为除matplotlib以外的数据可视化方案,ECharts或许可以成为一个强有力候补。尤其是在基于国内地图、关系图、桑基图等方面的数据展示上,ECharts完全可以担当大任,游刃有余。

3、实现原理

在IPython Notebook里,有一个display的模块,可以实现HTML效果的展示。而最核心的条件是notebook自带一个JS模块,可以通过RequireJS动态导入js脚本并执行。

我们先来看看HTML代码在IPython notebook里简单的实现效果:

通过RequireJS,引入ECharts包

然后配置echarts熟悉和数据

4、图表效果实例

这里只给大家展示K线图、折线图和饼图的效果,只揭示实现原理和过程,具体的代码优化和图表功能的完善,可以自行研究ECharts的相关资料来改进。

要实现这三类图表,这里借用股票日线行情数据、前十大股东持股占比数据和前十大流通股东持股比例来举例。(请将tushare升级到最新版。)

A、K线图效果

通过tushare的get_k_data获取日线前复权数据,这里通过中国联通来演示。根据上文的实现原理,我们运行代码后可以看到如下效果。

B、折线图效果

演示的折线图效果实际是我选用了关系图进行了改造,常规的折线图大家可以参考ECharts官网的代码。

这里我用到了tusahre的新数据接口“十大流通股东”数据来做演示,数据包括了前十大股东和十大流通股东历年各季度的持股数量和占比。折线图我用前十大股东历年持股占比情况来演示。

根据线图实现的代码,运行后,效果如下:

C、饼图效果

饼图用到了前十大流通股数据,选用浦发银行2016年第三季度的数据作为示例。

对前十大流通股东数据安装ECharts数据格式进行处理,代码大致如下:

完整执行后,可以看到最终效果图。

 

5、总结

ECharts实际可以大大丰富Python的图表和展示效果。但是要想用好,需要对ECharts的用法有所了解,特别是要实现自定义的图表的时候,更要对底层代码进行研究。

这里有三个应用方面的小技巧分享一下:

1、选定图表后,在ECharts的官网里进行代码修改和效果调试,直到满意。(如果有条件,这一步可以交给前端工程师)。

2、根据已经完成的代码模板,将数据部分在IPython notebook里用经过了pandas和Python数据清洗处理后的数据进行替换。

3、如果在IPython notebook里无法出现图表效果,检查数据结构是否正确。可以将代码和数据重新拷贝到ECharts的调试器里进行检查。

* 源代码:https://my.oschina.net/u/2306127/blog/841047

 

本文转载自:http://www.wtoutiao.com/p/554YOSW.html

共有 人打赏支持
openthings
粉丝 240
博文 876
码字总数 454311
作品 1
东城
架构师

暂无相关文章

知乎Java数据结构

作者:匿名用户 链接:https://www.zhihu.com/question/35947829/answer/66113038 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 感觉知乎上嘲讽题主简...

颖伙虫 ⋅ 今天 ⋅ 0

Confluence 6 恢复一个站点有关使用站点导出为备份的说明

推荐使用生产备份策略。我们推荐你针对你的生产环境中使用的 Confluence 参考 Production Backup Strategy 页面中的内容进行备份和恢复(这个需要你备份你的数据库和 home 目录)。XML 导出备...

honeymose ⋅ 今天 ⋅ 0

JavaScript零基础入门——(九)JavaScript的函数

JavaScript零基础入门——(九)JavaScript的函数 欢迎回到我们的JavaScript零基础入门,上一节课我们了解了有关JS中数组的相关知识点,不知道大家有没有自己去敲一敲,消化一下?这一节课,...

JandenMa ⋅ 今天 ⋅ 0

火狐浏览器各版本下载及插件httprequest

各版本下载地址:http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ httprequest插件截至57版本可用

xiaoge2016 ⋅ 今天 ⋅ 0

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 今天 ⋅ 0

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 今天 ⋅ 0

PXE/KickStart 无人值守安装

导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。 常规的办法有什么? 光盘安装系统 ===> 一...

kangvcar ⋅ 昨天 ⋅ 0

使用Puppeteer撸一个爬虫

Puppeteer是什么 puppeteer是谷歌chrome团队官方开发的一个无界面(Headless)chrome工具。Chrome Headless将成为web应用自动化测试的行业标杆。所以我们很有必要来了解一下它。所谓的无头浏...

小草先森 ⋅ 昨天 ⋅ 0

Java Done Right

* 表示难度较大或理论性较强。 ** 表示难度更大或理论性更强。 【Java语言本身】 基础语法,面向对象,顺序编程,并发编程,网络编程,泛型,注解,lambda(Java8),module(Java9),var(...

风华神使 ⋅ 昨天 ⋅ 0

Linux系统日志

linux 系统日志 /var/log/messages /etc/logrotate.conf 日志切割配置文件 https://my.oschina.net/u/2000675/blog/908189 logrotate 使用详解 dmesg 命令 /var/log/dmesg 日志 last命令,调......

Linux学习笔记 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部