Python一行代码搞定炫酷可视化,你需要了解一下Cufflinks

系统 1397 0
原文链接: https://aiprocon.csdn.net/?utm_source=wx

Python一行代码搞定炫酷可视化,你需要了解一下Cufflinks_第1张图片


作者 | xiaoyu

来源 | Python与数据科学


前言


学过Python数据分析的朋友都知道,在可视化的工具中,有很多优秀的三方库,比如matplotlib,seaborn,plotly,Boken,pyecharts等等。这些可视化库都有自己的特点,在实际应用中也广为大家使用。


plotly、Boken等都是交互式的可视化工具,结合Jupyter notebook可以非常灵活方便地展现分析后的结果。虽然做出的效果非常的炫酷,比如plotly,但是每一次都需要写很长的代码,一是麻烦,二是不便于维护。


我觉得在数据的分析阶段, 更多的时间应该放在分析上,维度选择、拆解合并,业务理解和判断。 如果既可以减少代码量,又可以做出炫酷可视化效果,那将大大提高效率。当然如果有特别的需求除外,此方法仅针对想要快速可视化进行分析的人。


本篇给大家介绍一个非常棒的工具, cufflinks 可以完美解决这个问题,且效果一样炫酷。


cufflinks介绍

就像seaborn封装了matplotlib一样,cufflinks在plotly的基础上做了一进一步的包装,方法统一,参数配置简单。其次它还可以结合pandas的dataframe随意灵活地画图。可以把它形容为 "pandas like visualization"


毫不夸张地说,画出各种炫酷的可视化图形, 我只需一行代码 ,效率非常高,同时也降低了使用的门槛儿。cufflinks的github链接如下:

https://github.com/santosjorge/cufflinks


cufflinks安装


安装不多说,直接pip install即可。


            


cufflinks如何使用?


cufflinks库一直在不断更新,目前最新版为V0.14.0,支持plotly3.0。首先我们看看它都支持哪些种类的图形,可以通过help来查看。


            


使用方法其实很简单,我总结一下,它的格式大致是这样的:

Python一行代码搞定炫酷可视化,你需要了解一下Cufflinks_第2张图片

  • DataFrame: 代表pandas的数据框;

  • Figure: 代表我们上面看到的可绘制图形,比如bar、box、histogram等等;

  • iplot: 代表绘制方法,其中有很多参数可以进行配置,调节符合你自己风格的可视化图形;


cufflinks实例


我们通过几个实例感受一下上面的使用方法。使用过plotly的朋友可能知道,如果使用online模式,那么生成的图形是有限制的。所以,我们这里先设置为offline模式,这样就避免了出现次数限制问题。


            


然后我们需要按照上面的使用格式来操作,首先我们需要有个DataFrame,如果手头没啥数据,那可以先生成个随机数。cufflinks有一个专门生成随机数的方法,叫做 datagen,用于生成不同维度的随机数据,比如下面。


lines线图


            


1)cufflinks使用datagen生成随机数;

2)figure定义为lines形式,数据为(1,500);

3)然后再用ta_plot绘制这一组时间序列,参数设置SMA展现三个不同周期的时序分析。


Python一行代码搞定炫酷可视化,你需要了解一下Cufflinks_第3张图片


box箱型图


还是与 上面用法一样,一行代码解决。


            


Python一行代码搞定炫酷可视化,你需要了解一下Cufflinks_第4张图片

可以看到,x轴每个box都有对应的名称,这是因为cufflinks通过kind参数识别了box图形,自动为它生成的名字。如果我们只生成随机数,它是这样子的,默认生成100行的随机分布的数据,列数由自己选定。


Python一行代码搞定炫酷可视化,你需要了解一下Cufflinks_第5张图片


histogram直方图


            


Python一行代码搞定炫酷可视化,你需要了解一下Cufflinks_第6张图片


和plotly一样,我们可以通过一些辅助的小工具框选或者lasso选择来区分和选定指定区域,只要一行代码。


当然了,除了随机数据,任何的其它dataframe数据框都可以,包括我们自己导入的数据。


histogram条形图


            
              Python一行代码搞定炫酷可视化,你需要了解一下Cufflinks_第7张图片
            
            


上面我们生成了一个(10,4)的dataframe数据框,名称分别是a,b,c,d。那么cufflinks将会根据iplot中的kind种类自动识别并绘制图形。参数设置为堆叠模式。


scatter散点图


            


Python一行代码搞定炫酷可视化,你需要了解一下Cufflinks_第8张图片


bubble气泡图


            


Python一行代码搞定炫酷可视化,你需要了解一下Cufflinks_第9张图片


scatter matrix 散点矩阵图


            


Python一行代码搞定炫酷可视化,你需要了解一下Cufflinks_第10张图片


subplots 子图


            


Python一行代码搞定炫酷可视化,你需要了解一下Cufflinks_第11张图片


            


Python一行代码搞定炫酷可视化,你需要了解一下Cufflinks_第12张图片


再比如复杂一点的。


            


Python一行代码搞定炫酷可视化,你需要了解一下Cufflinks_第13张图片


shapes 形状图


如果我们 想在lines图上增加一些直线作为参考基准,这时候我们可以使用hlines的类型图。


            


Python一行代码搞定炫酷可视化,你需要了解一下Cufflinks_第14张图片


或者是将某个区域标记出来,可以使用hspan类型。


            


Python一行代码搞定炫酷可视化,你需要了解一下Cufflinks_第15张图片


又或者是竖条的区域,可以用vspan类型。


            


Python一行代码搞定炫酷可视化,你需要了解一下Cufflinks_第16张图片


如果对iplot中的参数不熟练,直接输入以下代码即可查询。


              
            


总结


怎么样,是不是非常快捷方便?以上介绍是一般的可绘制类型,当然你可以根据自己的需求做出更多的可视化图形。 如果是常规图形,一行即可实现。 除此外,cufflinks还有强大的颜色管理功能,如果感兴趣可以自行学习。


(*本文为 Python大本营转载文章,转载请联系 原作者


社群福利

扫码添加小助手,回复:大会,加入2019 AI开发者大会福利群,每周 一、三、五 更新技术福利,还有不定期的抽奖活动~

Python一行代码搞定炫酷可视化,你需要了解一下Cufflinks_第17张图片



AI 开发者大会精彩提前看


2019 AI开发者大会重磅嘉宾更新: 阿里、华为、Google Brain、Amazon、微软中国、百度、京东、小米、快手、科大讯飞、商汤、旷视、图森、云知声、思必驰... “硬核AI技术大会,一年参加一次就够了”。扫码查看 更多嘉宾和大会信息。

Python一行代码搞定炫酷可视化,你需要了解一下Cufflinks_第18张图片

推荐阅读:

  • 干货 | 20个Python教程,掌握时间序列的特征分析(附代码)

  • 吐血整理! 140种Python标准库、第三方库和外部工具都有了

  • 用Python分析“标题党”文章

  • 别再说学不会:超棒的Numpy可视化学习教程来了

  • 如何用爬虫技术帮助孩子秒到心仪的幼儿园(基础篇)

  • Python传奇:30年崛起之路

  • 干货 | Python后台开发的高并发场景优化解决方案

  • 2019年最新华为、BAT、美团、头条、滴滴面试题目及答案汇总

  • 阿里巴巴杨群:高并发场景下Python的性能挑战


640?wx_fmt=png 你点的每个“在看”,我都认真当成了喜欢

更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论