Plotly+Cufflinks,交互式图表神器,一行代码GET!

前言

  • 本文将介绍如何使用Plotly+Cufflinks更简便地制作出更好的图表。
  • 这是Github上一个大神发布的资料,本人学习之后觉得非常实用,所以和大家分享。需要查看代码的童鞋指路Github:https://github.com/WillKoehrsen/Data-Analysis
  • 本文中的所有代码都是使用Jupyter notebook完成的,在使用pip命令安装了plotly和cufflinks之后,可以import使用它们。

1、Plotly+Cufflinks是什么?

  • Plotly Python包是Plotly公司开发的可视化软件的开源版本,是基于plotly.js构建的,而后者又建立在d3.js上。
  • 因为Plotly不能直接接受numpy和pandas的数据结构,所以用一个名为cufflinks的封装器来使用Pandas数据可以减少数据处理工作。
  • 这两个库的组合使用起来很简单,大部分时候可以用一行代码生成非常棒的图表,会比Matplotlib简单多了。
  • 导入库:
    • import plotly.graph_objs as go
    • import cufflinks as cf
    • from plotly.offline import iplot,init_notebook_mode
    • init_notebook_mode(connected=True)
    • cf.go_offline(connected=True)

2、花样制作各式图表

直方图、箱线图、柱状图、散点图、折线图、饼图、散点矩阵、热力图、散点3D图、气泡3D图,全部都可以用简单的一行代码搞定!

2.1、直方图

  • 直方图是绘制单一变量的首选图,下图是作者WillKoehrsen绘制的变量['Claps']直方分布图:


    1.png

    1.gif
  • 代码非常简单,就是在data之后加一个iplot后缀,并添加相应的参数。图表是交互式的,把鼠标放在bins可以获得相应数据。

2.1.1、分组直方图

  • 绘制分组直方图只需要添加参数[barmode='group']即可,非常简便。


    2.png

    2.gif

2.1.2、叠加直方图

  • 绘制叠加直方图则添加参数[barmode='overlay']。


    3.png

2.1.3、小结

  • 代码:df['value'].iplot(kind='hist',bins= ,xTitle= ,yTitle= ,title= )
  • 其他参数:linecolor、opacity(透明度)、bargap(间隔)、histnorm、barmode

2.2、柱状图

  • 对于条形图,需要先应用聚合函数,将x轴变量设为索引,然后再使用iplot绘图。例如作者以['publication']进行分组并计算变量['fans']的数量,再进行图形展示:


    4.png
  • 如果绘制多个分类的柱状图,则相应添加多个y轴变量即可,非常简单!


    5.png

2.2.1、双坐标轴

  • 如果两个分组变量的范围相差太大,我们又想把它们放在同一个坐标轴上,则可以设立y2轴。
  • 设立y2轴只需要添加参数secondary_y。


    6.png

2.2.2、小结

  • 代码:df.iplot(kind='bar',xTitle= ,yTitle= ,title= )
  • 其他参数:secondary_y、secondary_y_title

2.3、箱线图

  • 箱线图的制作和直方图类似,不过要把kind参数换成[kind='box']。


    7.png

    4.gif

2.3.1、分类箱线图

  • 如果我们需要制作分类箱线图,则需要先制作一个透视表。


    8.png

2.3.2、小结

  • 代码:df.ilpot(kind='box',xTitle= ,yTitle= ,title= )、df.pivot(columns= ,values= )
  • 其他参数:colorscale、layout

2.4、散点图和折线图

  • 制作散点图和折线图的话,和前面3个图不同,需要将kind参数更改为mode参数,不然会报错。
  • x轴变量默认为索引,但可以通过参数[x=' ']进行更改。


    9.png

2.4.1、增加拟合线

  • 增加拟合线相关参数:bestfit=True


    5.gif

2.4.2、增加文字注释

  • 利用text参数增加文字注释。
  • 作者利用HTML写了一个例子:


    10.png

2.4.3、分类散点图

  • 制作分类散点图可以通过categories参数添加:
  • 此外,也可以通过size参数对散点做进一步的区分,但size参数所带变量必须是数值变量。


    11.png

2.4.4、添加参考区域或参考线

  • 使用hline和vline参数可以添加线,使用vspan和hspan参数可以添加区域,和Matplotlib语法是类似的~


    12.png

2.4.5、小结

  • 相关参数:bestfit、text、categories、symbol(散点形状设置)、size(散点大小)、xrange(x轴范围)、yrange(y轴范围)、hline(水平参考线)、vline(垂直参考线)、hspan(水平参考区域)、vspan(垂直参考区域)

2.5、散点矩阵和热力图

  • 导入画图库:import plotly.figure_factory as ff
  • 散点矩阵画图函数:ff.create_scatterplotmatrix();热力图画图函数:ff.create_annotated_heatmap()


    13.png

2.6、饼图

  • 要制作饼图,需要先用聚合函数对变量进行分类,但不能设置分类变量为索引,否则无法画图。


    14.png

2.7、3D图形

  • 除了以上图形,plotly也可以画好看的3D图形,比如曲面图、3D散点图等。


    dai

3、总结

  • 比起Matplotlib和seaborn,Plotly可以快速地实现交互可视化,并输出令人愉悦的图形,让我们能更深入地探索数据细节。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,718评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,683评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,207评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,755评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,862评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,050评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,136评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,882评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,330评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,651评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,789评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,477评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,135评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,864评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,099评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,598评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,697评论 2 351