为什么plotly被称为“有史以来最牛逼”可视化神器?

Plotly,一个用于做分析和可视化的在线平台,曾被网友称为“有史以来最牛逼”可视化神器(具体无从考据,只是在搜索资料时看到的),为何有如此称号?因为它功能强大,功能强大,功能强大!重要的事情说三遍!
其功能强大到不仅与多个主流绘图软件的对接,而且还可以像Excel那样实现交互式制图,而且图表种类齐全,并可以实现在线分享以及开源,等等;这种功能强大到还没有一个人能够完全掌握其全部应用,甚至国内对它的介绍使用也仅仅只是其中一部分。接下来笔者对plotly的一些隐藏功能进行介绍,并部分以python的使用来简单说明。
(一)关于Plotly的功能
关于Plotly的功能介绍,有的从图表类型上:基本图表:20种;统计和海运方式图:12种;科学图表:21种;财务图表:2种;地图:8种;3D图表:19种;拟合工具:3种;流动图表:4种。。。。。
有的从交互性上:可以与R、python、matlab等软件对接,并且是开源免费的,对于Python,Plotly与Python中matplotlib、numpy、pandas等库可以无缝地集成,可以做出很多非常丰富,互动的图表,并且文档非常健全,创建图形相对简单,另外申请了API密钥后,可以在线一键将统计图形同步到云端。。。。
有的从制图的美观上:基于现代的配色组合、图表形式,比matpltloa、R语言的图表,更加现代、绚丽。。。。
即便如此,尚不能完全概括其功能,比如在图表类型上,除以上所说,由于其开源性,plotly上还有很多网友上传的自制图表,在plotly主页(https://plot.ly/ )点击try free edition,在不登录的情况下(出来的log in 对话框点X),就会看到很多网友分享的图表,并且可以看到其代码,如下图:

Paste_Image.png
这是一个不同国家回答“人类是否早期动物物种”的“yes”回答数量,但它不属于基本图形,因为其中一个柱子进行了颜色标注。我们点击该图形,在不登陆的情况下,就可以看到制作该类图形的api接口,根据它我们就可以模仿做出来该图形。
Paste_Image.png
图1
如图,其中data是该图形的数据表格,code则是不同软件api接口代码。
另外,plotly可以像excel那样进行交互式制图,在https://plot.ly/feed 点击make a plot,就会进入plotly在线绘图编辑工作台,如图:
Paste_Image.png
图2
在Grid1下边的表格中可以输入数据,在左边可以进行图形类型、变量选取,以及图形修饰等等工作,其中style就是对图形的图层、图例、标题、坐标轴等等内容的互动式美化;analysis则是对图形进行一些统计检验与分析,比如描述性统计、t检验、卡方检验、线性拟合、移动平均等等;JSON则是一些图形要素的json数据展示。在登陆的情况下,将绘制图形保存后,可以进行导出与分享,分享之后你就可以看到不同软件api的代码。下图就是使用style的功能对绘制完成的图形进行(trace、title等方面)美化。
另外 ,可以看到图中有个上方一行import按钮,点击进入,可以从这个按钮中导入excel、csv、SQL、URL等储存方式的数据。
Paste_Image.png
(二)关于Plotly的python使用
在Plotly网站,点击Python软件类型选择件就可以进入专门使用python的主页(https://plot.ly/python/):
Paste_Image.png
图4
左侧一列是导航,包含如何开始使用,使用说明,离线使用以及于其他库结合使用,还有例子,正文中下边就是各种图形,需要用哪种图形就可以点击进去寻找代码。特别说明的是:Plotly需要注册之后,并将注册名与密码放入代码里才能使用。
在Python使用plotly,首先要安装plotly库,在Plotly——getting start里有说明:
安装方法
pip install plotly 或者 sudo pip install plotly
需要升级的话,可以输入:
pip install plotly –upgrade
注册,在python交互环境下运行以下初始化命令,生成认证的安全文件 .plotly/.credentials。
py = plotly.plotly("Username", "API-Key")
(三)Plotly for python 的案例
Plotly for python 的案例,目前网上已有很多人分享,在这里不再赘述。在这里只是以一个简单案例介绍Plotly for python 的一些隐藏功能。以散点图为例:

import plotly.plotly as py
import plotly.graph_objs as go

# Create random data with numpy
import numpy as np
N = 100
random_x = np.linspace(0, 1, N) #建立0与1之间的等差数,1
random_y0 = np.random.randn(N)+5 #均值为5的正态分布随机数
random_y1 = np.random.randn(N)
random_y2 = np.random.randn(N)-5#均值为-5的正态分布随机数
# Create traces
trace0 = go.Scatter(
    x = random_x,
    y = random_y0,
    mode = 'markers',
    name = 'markers') #构造散点图线条1
trace1 = go.Scatter(
    x = random_x,
    y = random_y1,
    mode = 'lines+markers',
    name = 'lines+markers')
trace2 = go.Scatter(
    x = random_x,
    y = random_y2,
    mode = 'lines',
name = 'lines')
data = [trace0, trace1, trace2]
py.iplot(data, filename='scatter-mode')

生成图形如下:


Paste_Image.png

图5
这就是三条不同的线条,一条是点,一条是点+线,一条是线;从这个案例我们可以看出:
(1)plotly是以图中每一个元素作为一个函数进行设置的,而不是像matplotlib放在一个大函数下统一进行参数设置;如本例中的trace0、trace1、trace2,在里边也可以设置其图形形状(mode)、图例(name)的值;
(2)出来的图形是交互式的,还可以进行选择以及再编辑,如图右上角是图形范围操作的一些按钮,右下角是进入在线编辑工作台的按钮;
(3)进入在线编辑工作台后,出现如图2类似的界面,这时候可以对图形进一步美化,比如加背景,标题、坐标轴等等,有很多类似的操作,但在这里要注意有的操作是免费的,有的操作是要付费才能使用的。
(4)再做一些修改之后,在登陆的情况下,保存修改后的图形,然后在个人主页上的my profile中点击view就可以预览你所制作的图形,此时你所手动操作的一些修饰也会以代码的形式展示出来,并且是以不同R、python、matlab等软件展示出来,当你不会以输入代码的形式进行图形美化的时候,这种方式会给你以提示!!
(5)可以将你的图形以pdf、ppt、png等等格式下载下来,可以将数据下载到csv、sql等储存中,也可以将你的图形在facebook、推特、github等等地方分享,如果你有账号的话。。。
如图,我在plotly工作台上给图形加了一个大标题以及背景之后;


Paste_Image.png
图6
在code-python下会自动看到我的手动操作对应的python代码
data = Data([trace1, trace2, trace3])
layout = {
  "font": {"size": 13}, 
  "paper_bgcolor": "rgb(188, 189, 34)", 
  "plot_bgcolor": "rgb(255, 255, 255)", 
  "title": "zjying scatter", 
  "titlefont": {
    "color": "rgb(68, 68, 68)", 
    "size": 21
  }, 
  "xaxis": {
    "autorange": True, 
    "range": [-0.062925170068, 1.06292517007], 
    "type": "linear"
  }, 
  "yaxis": {
    "autorange": True, 
    "range": [-9.28642456481, 8.63397900633], 
    "type": "linear"
  }
}
fig = Figure(data=data, layout=layout)
plot_url = py.plot(fig)

另外,plotly还可以对接pandas包,可以通过pandas的pd.read_csv()命令导入csv格式数据。
总之,从以上一个小小案例,可以看到plotly的强大之处,在于无时无刻不交互——对接各种绘图软件、数据库,可以像excel一样对图形进行编辑,可以线上分享也可以学习各种各样的个人定制图表,可以下载成各种常用的输出形式。不过由于plotly是国外网站,网站打开速度有时候会慢,另外,免费版本的potly功能有的地方一些限制,但是能满足一般需求。

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

推荐阅读更多精彩内容