Plotly互动型python绘图神器

Plotly互动型python绘图神器
摘自zw量化培训班-高级班课件

Top极宽网站plotly在线demo:http://www.topquant.vip/zwdemo.htm 

python量化的一个关键,是金融数据可视化,无论是传统的k线图,还是现在的互动策略分析,都需要大量的可视化图表分析。
具体到编程代码,就是各种python绘图模块库。
图1-1,图1-2,是新一代python绘图库plotly的部分图表案例。

65
图1-1 plotly部分图表案例
66

图1-2plotly部分图表案例,动态图例

python常见的绘图模块库有:

[*]matplotlib,是最常用的绘制二维图形的Python模块库,非常强大,也很复杂。它提供了许多Matlab的绘图函数,可以绘制多种图形:线图,直方图,饼图,散点图以及误差线图等;可以比较方便的定制图形的各种属性比如图线的类型,颜色,粗细,字体的大小等;它能够很好地支持一部分TeX排版命令,可以比较美观地显示图形中的数学公式。
[*]Seaborn,是基于matplotlib的基础,更加简单、强大的python绘图模块库,提供了更加现代的色彩组合与图表形式,并针对数据统计进行了大量的优化。Seaborn图表模块库,使数据看起来更具有吸引力,还可以很简单地创建更复杂的图表,也可以和pandas集成。
[*]ggplot,ggplot基于Leland Wilkinson在图形语法(Grammar of Graphics)理论设计的回头客。ggplot最早在R语言中实现,目前也有python版本。ggplot与seaborn相似,也是基于matplotlib,用于简化matplotlib可视化,并改善可视化效果。与seaborn不同的是,它是R语言ggplot2的移值。因此,一些API对于python不太友好,但它确实非常强大。使用ggplot绘图的过程就是选择合适的几何对象、图形属性和统计变换来充分暴露数据中所含有的信息的过程。ggplot2采用特殊的图形语法结构,需要一定的时间去入门学习,但是当你掌握了图形语法的时候,你会感受到这其中的优雅。
[*]Bokeh,Bokeh是一个专门针对Web浏览器的呈现功能的交互式可视化Python库。这是Bokeh与其它可视化库最核心的区别。
[*]Pychart,用于创建高品质封装的PostScript,PDF格式,PNG,或SVG图表Python库。
[*]PLPlot,用于创建科学图表的跨平台软件包。以C类库为核心,支持各种语言绑定(C,C++,Fortran,Java,Python,Perl etc.)。
[*]Vpython,是Visual Python的简写,是由Carnegie Mellon University(卡耐基-梅隆大学)在校学生David Scherer于2000年撰写的一个Python 3D绘图模块。
[*]pygal,可用来创建svg图表,svg文件对于创建交互图表非常有用。可以很容易创建个性化的,视觉体验很好的图表,不过没有基于matploglib的方案那样灵活。
[*]Plotly,新一代互动型py量化绘图库,被网友称为:Plotly是有史以来最牛逼的绘图工具,没有之一。

python绘图模块库,数不胜数,其中称为经典的也有数十家,目前,Plotly作为新一代互动型py量化绘图库,基本上可以说一统天下。
原本plotly是收费的商业软件,幸运的是,2016年6月,plotly绘图模块库提供了免费的社区版本,并新增了python等多种编程语言的接口,以及离线(offline)模式支持,这对于广大中国用户而言,提供了现实的技术支持。
笔者在编著《零起点,python大数据与量化分析–进阶篇时》,特别针对多种python绘图模块库进行了测试,测试结果表明,Plotly绘图模块库,的确无愧是新一代python绘图模块的王者之选,也是各种web平台的优先选择。
以笔者个人的测试感觉而言,Plotly绘图模块,即有matplotlib绘图模块的强大与灵活,也有Seaborn统计绘图的现代配色组合与优雅报表;与传统绘图模块不同,Plotly绘图模块虽然也可直接生成png等图像文件,但默认方式,是与bokeh互动图表模块,以及各种基于web的javascript图表模块库类似,生成的是一个内置javascript脚本的htm网页文件,虽然文件体积上比bokeh绘图模块生成的文件略大,但互动性方面,强大的多;至于3D图表方面,虽然笔者没有实际测试,但基于plotly网站的案例,可以看出,比传统python 3D图表模块库,无论在图表种类格式、还是色彩组合方面,都显得更加灵活,也更加强大。

如以下各图(图1-3至图1-5)所示,是plotly绘图模块与各种传统python绘图模块的对比。

67
图1-3 matplotlab绘图模块库的k线图

69
图1-4 Seaborn绘图模块库的统计图

71
图1-5 plotly绘图模块库的k线图

从图1-3至图1-5,大家可以感受到plotly的强大,无论是颜色组合、图表构成,以及互动的数据展示;gif动态截图图的是plotly生成的k线图互动操作录像,生成的其实是一个纯js的htm文件,已经上传的群文件共享,大家可以参考,晚一点,网站会发一个blog
图1-5 plotly绘图模块库的k线图,其实最强的一点:互动性,在截图地址无法体现。请大家浏览:
《zw量化社区,迟到的复活节彩蛋,早到的圣诞节礼物 》
[url=http://ziwang.com/forum.php?mod=viewthread&tid=5]http://ziwang.com/forum.php?mod=viewthread&tid=5[/url]

其中的demo案例:

[url=http://www.ziwang.com/zwdemo.htm]http://www.ziwang.com/zwdemo.htm[/url]
请注意。这个案例没有使用任何图片,是100%纯js脚本函数,所有的图形、数据、互动都是通过js函数完成的,这些js函数,全部是通过pyhton自动生成。

Plotly原本是基于javascript的数据图表分析绘制模块库,在编程的灵活性和图表的丰富性方面,非常强大,优点数不胜数:

[*] plotly本身是一款独立的web版数据可视化工具,界面友好,提供强大的互动性操作。
[*] 基于现代的配色组合、图表形式,比matpltloa、R语言的图表,更加现代、绚丽
[*] 简单强大的3d图表绘制,支持多种格式
[*] 对图形参数的修改十分简单直观,便于初学者使用
[*]有python、R、matlab、jupter、excel等多种版本的接口。
[*]与pandas(潘达思)数据分析软件无缝集成,并提供了专门的

plotly绘图模块库,设计的图表,非常吸引人,而且高度互动。得益于其完善的文档和简单的python API,起步入门也很容易的。
目前,plotly绘图模块库,支持的图表格式有:

[*]基本图表:20种
[*]统计和海运方式图:12种
[*]科学图表:21种
[*]财务图表:2种
[*]地图:8种
[*]3D图表:19种
[*]报告生成:4种

[*]连接数据库:7种
[*]拟合工具:3种
[*]流动图表:4种

随着plotly绘图模块库软件的升级与更新,未来,会增加更多的图表格式。

plotly绘图模块库网络资源
网站:http://plot.ly
python模块库:http://plot.ly/pyhton
GitHub项目网址:http://github.com/plotly/plotly.py

附录:
《Plotly 学习总结》-王信平 博客园
http://www.cnblogs.com/wangshuo1/p/6185932.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注