python可视化数据分析plotly简介

释放双眼,带上耳机,听听看~!

Pandas(潘达思)数据分析软件和Plotly互动式绘图模块可以称为Python教椐分析和Python量化分析两大重量级模块库。

●Pandas目前已经被业界公认是大数据工程一线最好的解决方案。

●Plotly被称为史上最好的绘图工具之一,是GitHub开源网站最火的两大新项目之—(另外一个是Netfilx的Spinnaker云计算项目)。

为了更好地展示金融数据的复杂性,下面首先介绍Plotly绘图模块。如图所示是Plotly网站截图,网址是https://plot.ly

plotly网站

plotly网站

Python量化的关键是金融数据可视化,无论是传统的K线图,还是现在的互动策略分析,都需要大量的可视化图表。具体到编程代码,就是各种python绘图模块库,传统Python绘图模块库有Matplotlib、Ggplot、Seaborn、Bokeh等。

Plotly绘图底层使用的是plotly.js, plotly.js基于D3.js、stack.gl(WebGL组件库,由Ploty团队的Mikola Lysenko带领开发)和SVG,用 JavaScript在网页上实现类似MATLAB和Python Matplotlib的图形展示功能,支持数十种图形,包括2D和3D图形,交互流畅,可以满足一般科学计算的需要。该项目成功后,开始向其他语言移植,目前已经有Python、MATLAB、R语言、 Jupyter等多种版本的API接口。

Plotly项目的创始人是Alex Johnson,是哈佛大学物理博士,曾经做过燃料电池。该项目的参与者中有一位华裔女生,叫Baobao Zhang(张宝宝 耶鲁大学政治学博士。Fernando Perez( PythonNotebook创始人)是该项目的顾问。

Plotly项目团队在2013年就已经拿到数百万美元的投资,并在加拿大蒙特利尔注册了公司,公司名称是科学数据云服务公司,号称是"首个科学数据平台",提供线上和联机服务,方便其投资商MHS资本、西门子风险资本、 Rho ventuRes、 Real ventures和硅谷银行等。

Plotly公司有很多大牌客户,如西门子、 Google、美目国家航天局(NASA)、美国空军、华盛顿邮报、美国国家卫生研究院等。

Plotly公司的联合创始人Jack Parmer这样说过:对于开发者来说,绘制出漂亮的、交互式的图表并将之分享是件很容事的事,但是于一般的用户则很困难。Plotly改变了这种局面,借助互联网的媒利用世界级的绘图分析工具,每个人都可以参与其中。

Hacker News(极客新闻)网站曾经专门讨论过各种图形模块库,如Matplotlib、MPLD3、Bokeh、Highcharts、Flotcharts、MetEricsGraphics、Vega、Chartjs、FusionCharts和JSXGraph。相比而言,Plotly功能齐全,性能显著,超越了其他产品。

Plotly原本是收费的商业软件,幸运的是,2016年8月,Plotly绘图模块库提供了免费的社区版本,并新增了python等多种编程语言的接口,以及离线模式支持,这对于广大中国用户而言,获得了现实的技术支持。

Python绘图模块库数不胜数,其中经典的有数十个。目前Plotly作为新一代互动型量化绘图库,基本上可以说一统天下。如图所示是Plotly绘图模块库部分内置的图形类型。

plotly绘图模块图形类型

plotly绘图模块图形类型

笔者特别针对多种Python绘图模块库进行了测试,测试结果表明,Plotly绘图模块库的确是新—代Python绘图模块的王者之选,也是各种web平台的优先选择绘图模块。

以笔者个人的测试感觉而言,Plotly绘图模块库既有Matplotlib绘图模块库的强大与灵活,又有Seabom统计绘图模快库的现代配色组合与优雅报表形态。

Plotly绘图模块库可直接生成PNG等图像文件,与Bokeh绘图模库和各种基于web的JavaScript图表模块库类似,生成的是一个内置 javascript脚本的HTML网页文件,虽然文件比Bokeh绘图模块库生成的文件略大,但在互动性方面,Plotly绘图模块库强大得多。

在3D图表方面,虽然笔者没有实际测试,但基于Plotly网站的案例可以看出,相对传统 Python3图表模块库,无论在图表种类格式,是色彩组合方面,門绘图模块库都显得更加灵活和强大。

如下图所示是Plotly绘图模块库绘制的线图,支持互动功能,读者以参考Tap极宽量化社区的演示网页(http:/www.ziwang.com/zwdemo.htm)。

plotly模块绘制的K线图

plotly模块绘制的K线图

请注意,案例中没有使用任何图片,是纯 Javascript脚本函数所有的图形、数据和互动都是通过JavaScript函数完成的,JavaScript函数全部是通过python自动生成的。

上图虽然是静止的,但在浏览器中,其实是纯javascipt脚本的函数图形,支持各种互动功能,读者可以好好体会一下,并且看看网页源码。

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

●Plotly本身是一款独立的Web版数据可视化工具,界面友好,提供强大的互动性操作。

●基于现代的配色组合和图表形式,相比Matplotlib、R语言的图表、更加现代和绚丽。

●具有简单且强大的3D图表绘制功能,支持多种格式。

●对图形参薮的修改十分简单、直观,便于初学者使用。

●有Python、R、 MATLAB、 Jupyter、EXcel等多种版本的接口。

●与Pandas(潘达思)数据分析软件无缝集成,并提供了专门的Plotly绘图模块库,设计的图表非常吸引人,而目具有高度互动性,得益于其完善的文档和简单的Python API,用户入门也很容易,目前,Plotly绘图模块库支持的图表格式如下

●基本图表:20种。

●统计和海运方式图:12种。

●科学图表:21种。

●财努图表:2种。

●地图:8种中。

●3D图表:19种。

●报告生成:4种。

●连接数据库:7种。

●拟合工具:3种。

●流动图表:4种。

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

Plotly底层使用的是Plotly.js.,支持Python、R、MATLAB、JavaScript这四种语言的扩展,由于python正处于数据分析领域的领先地位,并且其重要性呈日渐上升之势,所以我介绍Plotly时以Python语言(Python3)为主,同时也会给出Plotly在其他语言中的些应用。

Plotly发展很快,其应用的领域也非常广泛,不但应用在传统意义上的数据分析与处理上,而且在网页开发、程序GUI、机器学习等多个方面也有重要的应用。

并不需要读者对python有的了解,没有学过python的读者只需要花费两个小时了解即可。

人已赞赏
error: Content is protected !!