基于Pandas+ECharts的金融大数据可视化实现方案

前言

最近无意中看到一篇文章,介绍的是在IPython Notebook里实现ECharts的可视化效果。我个人对ECharts一直是推崇有加,是baidu发布的开源项目中我比较喜欢的一个,绝对是良心之作了。所以,看到这篇文章着实小激动了一把。

今天借花献佛,利用金融证券数据,举几个小例子,给大家分享一下实现过程。顺便告诉大家,怎么在tushare里调用前十大股东及流通股东数据的接口。

1

ECharts介绍

以下摘自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升级到最新版。)

1、K线图效果

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

2、折线图效果

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

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

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

3、饼图效果

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

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

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

5

总结

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

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

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

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

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

6

演示代码获取

已经将以上效果的所有代码完整保存到了IPython Notebook格式的文件里,有兴趣的朋友可以直接在挖地兔公众号私信回复“图表”,自动获取代码文件下载地址。

Image placeholder
IT头条
未设置
  80人点赞

没有讨论,发表一下自己的看法吧

推荐文章
包银消费CTO汤向军:消费金融大数据风控架构与实践

01风险在哪里1.1 信用风险根据银行业的风险理论,信用风险是指借款人因各种原因未能及时、足额偿还债权人或银行贷款而违约的可能性。信用风险的风控重点在于,甄别客户违约的原因究竟是还款能力,还是还款意愿

做银行家里的数据专家:ING探索大数据时代下的金融最佳实践

大数据文摘出品记者:高延6月18-21日,O’ReillyAIConference在北京召开。大会上,来自荷兰的金融公司ING的IT主管BasGeerdink带来了《关于数字驱动企业》的主题分享。进入

那个“炫酷狂拽”的数据可视化利器AntV 11.22版全新发布啦

导读AntV是一个数据可视化项目,也是一个团队,蚂蚁金服数据可视化团队,一群有爱有梦的人,怀揣「让人们在数据世界里获得视觉化思考能力」的梦想前行,希望成就智能时代全球领先的数据可视化解决方案,满足与日

2019值得关注的数据可视化工具TOP5

 数据可视化在数据分析过程中的扮演着非常重要的角色。对于数据科学家或数据分析师来说,以更直观、便于查看、甚至更吸引人的视觉效果来呈现数据是很重要的。数据可视化是一个有效的市场工具,通过这种方式,从海量

智能数据可视化的5个步骤

如今,许多企业正在利用模型、数据分析、数据可视化和仪表板等措施实现数据驱动。例如商业领袖注重提升客户体验,技术领导者注重分析速度和网站指标,应用程序团队在其应用程序中嵌入分析程序等等。这意味着更多的开

基于Webpack的css sprites实现方案

一、前言关于csssprites(雪碧图/精灵图)的几种实现方案可以参考浅谈CSSSprites雪碧图应用。本文主要讨论基于webpack的csssprites实现方案。由于使用webpack时会涉及

Go语言高级编程_4.7 pbgo: 基于Protobuf的框架

4.7pbgo:基于Protobuf的框架 pbgo是我们专门针对本节内容设计的较为完整的迷你框架,它基于Protobuf的扩展语法,通过插件自动生成rpc和rest相关代码。在本章第二节我们已经展示

RTSP网络摄像头/海康大华硬盘录像机网页无插件直播方案EasyNVR如何实现RTMP/FLV/HLS/RTSP直播流分发

背景需求对于摄像机直播,客户反馈的最多就是实现web直播、摆脱插件,可以自定义集成等问题。我们熟悉的EasyNVR已经完美的解决了这些问题。然而对于web播放也存在一些问题,通常我们web播放RTMP

滴滴大数据在汽车金融风控场景中的应用

桔妹导读:滴滴独有的出行场景大数据在金融领域有着非常广泛的应用前景,未来可与银行,保险,支付和理财等机构深入合作,帮助传统金融机构提升资源配置效率,降低获客和风险管理成本。出行场景大数据在交易欺诈识别

可视化编程是否真的没有未来?程序员:它有“七宗罪”

今天想聊聊可视化编程(visual-programming)的未来发展,喂喂,咱们这儿还没开始,各位大佬先别急着走啊您……确实,可视化这个概念跟任何技术并称,都是技术前沿、下一个风口、万亿市场的代名词

可视化的JavaScript:作用域(链)

首先,来看看下面的代码:constname="Lydia" constage=21 constcity="SanFrancisco" functiongetPersonInfo(){ constn

可视化的JavaScript:事件循环

首先,事件循环是什么,为什么要理解它?JavaScript是单线程的:一次只能运行一个任务。通常这没什么大不了的,但现在想象一下我们正在运行一个需要30秒的任务。在这个任务中,我们要等待30秒,然后才

可视化的JavaScript:JavaScript引擎运行原理

JavaScript很酷,但是JavaScript引擎是如何才能理解我们编写的代码呢?作为JavaScript开发人员,我们通常不需要自己处理编译器。然而,了解JavaScript引擎的基础知识并了解

打造高逼格、可视化的Docker容器监控系统平台

关于Docker技术的文章之前也断断续续写了几篇:Docker容器系列文章|Docker技术入门(一)Docker容器系列文章|Docker技术入门(二)Docker容器系列文章|这20个Docker

分享一个可视化开发vue框架下的各类ui的web在线表单设计布局器

新手发帖,第一次不小心刷新了一下就没了本人刚入门vue,偶然间发现这款布局器挺好的,可视化开发element所以分享给大家网站地址:http://lowcode.magicalcoder.c...嵌入

Python可视化 | Seaborn5分钟入门(一)——kdeplot和distplot

微信公众号:「Python读财」如有问题或建议,请公众号留言Seaborn是基于matplotlib的Python可视化库。它提供了一个高级界面来绘制有吸引力的统计图形。Seaborn其实是在matp

Python可视化 | Seaborn5分钟入门(二)——barplot&countplot&pointplot

微信公众号:「Python读财」如有问题或建议,请公众号留言Seaborn是基于matplotlib的Python可视化库。它提供了一个高级界面来绘制有吸引力的统计图形。Seaborn其实是在matp

Python可视化 | Seaborn5分钟入门(七)——pairplot

微信公众号:「Python读财」如有问题或建议,请公众号留言Seaborn是基于matplotlib的Python可视化库。它提供了一个高级界面来绘制有吸引力的统计图形。Seaborn其实是在matp

Python可视化 | Seaborn5分钟入门(三)——boxplot和violinplot

微信公众号:「Python读财」如有问题或建议,请公众号留言Seaborn是基于matplotlib的Python可视化库。它提供了一个高级界面来绘制有吸引力的统计图形。Seaborn其实是在matp

Python可视化 | Seaborn5分钟入门(四)——stripplot和swarmplot

微信公众号:「Python读财」如有问题或建议,请公众号留言Seaborn是基于matplotlib的Python可视化库。它提供了一个高级界面来绘制有吸引力的统计图形。Seaborn其实是在matp

Python可视化 | Seaborn5分钟入门(六)——heatmap热力图

微信公众号:「Python读财」如有问题或建议,请公众号留言Seaborn是基于matplotlib的Python可视化库。它提供了一个高级界面来绘制有吸引力的统计图形。Seaborn其实是在matp

Python可视化 | Seaborn5分钟入门(五)——lmplot

微信公众号:「Python读财」如有问题或建议,请公众号留言Seaborn是基于matplotlib的Python可视化库。它提供了一个高级界面来绘制有吸引力的统计图形。Seaborn其实是在matp

转型提速盈利承压的金蝶还要怎么走?

2019年对于转型中的金蝶可能并不那么友好,突遭做空股价跳水,不得不一再声明对未来的信心,7月入职20年的金蝶中国总裁孙雁飞离职,49岁沈崇锋接棒,中途换帅也被外界进行了多方位的解读。8月13日晚间金

Android篇 | 爱奇艺App启动优化实践分享

导读性能优化一直都是各个APP推进中的重点、难点,爱奇艺App也不例外。在此之前,爱奇艺AppAndroid版的启动速度虽然一直处于同类App领先的水平,但优势距离其他同类的APP距离一直很小。面

css如何实现文字颜色渐变?3种实现方法

基础样式:.gradient-text{ text-align:left; text-indent:30px; line-height:50px; font-size:40px; font-