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),就会看到很多网友分享的图表,并且可以看到其代码,如下图:

这是一个不同国家回答“人类是否早期动物物种”的“yes”回答数量,但它不属于基本图形,因为其中一个柱子进行了颜色标注。我们点击该图形,在不登陆的情况下,就可以看到制作该类图形的api接口,根据它我们就可以模仿做出来该图形。

如图,其中data是该图形的数据表格,code则是不同软件api接口代码。

另外,plotly可以像excel那样进行交互式制图,在https://plot.ly/feed 点击make a plot,就会进入plotly在线绘图编辑工作台,如图:

在Grid1下边的表格中可以输入数据,在左边可以进行图形类型、变量选取,以及图形修饰等等工作,其中style就是对图形的图层、图例、标题、坐标轴等等内容的互动式美化;analysis则是对图形进行一些统计检验与分析,比如描述性统计、t检验、卡方检验、线性拟合、移动平均等等;JSON则是一些图形要素的json数据展示。在登陆的情况下,将绘制图形保存后,可以进行导出与分享,分享之后你就可以看到不同软件api的代码。下图就是使用style的功能对绘制完成的图形进行(trace、title等方面)美化。

另外 ,可以看到图中有个上方一行import按钮,点击进入,可以从这个按钮中导入excel、csv、SQL、URL等储存方式的数据。

(二)关于Plotly的python使用

在Plotly网站,点击Python软件类型选择件就可以进入专门使用python的主页(https://plot.ly/python/):

左侧一列是导航,包含如何开始使用,使用说明,离线使用以及于其他库结合使用,还有例子,正文中下边就是各种图形,需要用哪种图形就可以点击进去寻找代码。特别说明的是: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')

生成图形如下:

这就是三条不同的线条,一条是点,一条是点+线,一条是线;从这个案例我们可以看出:

(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工作台上给图形加了一个大标题以及背景之后;

在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功能有的地方一些限制,但是能满足一般需求。

转自:https://mp.weixin.qq.com/s?__biz=MzI5NDY1MjQzNA==&mid=2247485614&idx=1&sn=f316be01c3acbd60edb3d669c43794ee&chksm=ec5ed7d3db295ec52ae0c9904ffe7557db2d15b9f8a5715a5add2095be2be2fb4ed4124c015d&mpshare=1&scene=23&srcid=0213eyTTHIj5kEnAyI5pZO8k#rd

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

  1. 有史以来最牛逼的一张程序员职业路线图,分享给你

    最近在琢磨程序员到底路在何方,经过不断的自虐和代入,终于在迷雾森林中得图一张,看之豁然开朗.独乐乐不如众乐乐,share了: (图1 程序员职业路线图) 术语表 图1中使用了很多术语,这里先做解释,只 ...

  2. 据说这是史上最牛逼的可视化神器

    全世界只有3.14 % 的人关注了 数据与算法之美 我们粉丝里面有很多小伙伴喜欢玩数据分析,粗略估计有几千人.数据分析离不开数据可视化.比如我们前面介绍过pandas画图,matplotlib画图,p ...

  3. 牛逼!无需安装,一行命令搞定内网穿透

    点关注公众号,回复"1024"获取2TB学习资源! 内网穿透,即NAT穿透,网络连接时术语.外网与内网的计算机节点需要连接通信,映射端口能让外网的电脑找到处于内网的电脑,提高下载速 ...

  4. Python史上最牛逼的可视化神器

    数据分析离不开数据可视化.比如我们前面介绍过pandas画图,matplotlib画图,pyecharts画图当然还有Tableau,今天推荐一款更牛的可视化神器,主要是这款神器的画出来的图很漂亮,色 ...

  5. 可视化神器Plotly玩转股票图

    可视化神器Plotly玩转股票图 本文是可视化神器Plotly绘图的第7篇,讲解的是如何通过Plotly来绘制与股市相关的图形,比如基础K线图.OHLC图等. 温馨提示⚠️:**股市有风险,投资需谨慎 ...

  6. 技术牛逼,就可以成为专家吗?

    作者| Mr.K   编辑| Emma 来源| 技术领导力(ID:jishulingdaoli) 01 什么样的人,才能称为专家? 职场当中,只要技术牛逼,就可以成为专家,看起来是天经地义的事情. 真 ...

  7. 这 HTTPS,真滴牛逼!

    HTTPS 常用的密钥交换算法有两种,分别是 RSA 和 ECDHE 算法. 其中,RSA 是比较传统的密钥交换算法,它不具备前向安全的性质,因此现在很少服务器使用的.而 ECDHE 算法具有前向安全 ...

  8. 想成为牛逼程序员? 先数数编程语言之父们的头发

    http://developer.51cto.com/art/201709/551494.htm 有一种生物,人称"程序猿" or "攻城狮" 工作是高端大气上 ...

  9. 代表Java未来的ZGC深度剖析,牛逼!

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | 阿飞的博客 JAVA程序最爽的地方是它的GC机 ...

最新文章

  1. Spark和Hadoop,孰优孰劣?
  2. Xshell 更改字体配色
  3. js 控制按钮点击后不可用(用于短信或者邮箱验证)
  4. 51nod 2006 飞行员配对(二分图最大匹配) 裸匈牙利算法 求二分图最大匹配题
  5. HDU - 4990 Reading comprehension(矩阵快速幂,水题)
  6. 初学者python笔记(元组、字典、集合详解)
  7. 真不好意思,关于小猪妹(妖精)的
  8. 通过规模化Scrum创造最新技术的打印机
  9. python-Python 函数
  10. 分布式配置管理平台XXL-CONF
  11. RocketMQ入门(2)最佳实践
  12. 【Matlab学习笔记】【函数学习】cat函数
  13. C语言例题——简易秒表
  14. Egg中使用DiyUpload实现图片批量上传
  15. 卡巴6kis最新激活码
  16. my.cnf配置详解
  17. Canvas绘制抽奖转盘
  18. HTML进阶--段落标签P --------16岁的小前端
  19. watch事件监听三种写法
  20. WebGL空间变换以及gl_FragCoord的运用

热门文章

  1. 互联网大厂内推求职的正确姿势?
  2. centos 7防火墙
  3. Android自定义View,滑动,事件传递小结
  4. canvas做一个简单气泡图
  5. iOS实现ScrollView中子控件(Button,自定义View)的触摸事件响应
  6. python三步实现人脸识别
  7. F - 等式(1/x + 1/y = 1/n)
  8. mysql用户管理,常用sql语句,mysql数据库备份恢复
  9. 实例讲解Linux系统中硬链接与软链接的创建
  10. ios MKNetworkKit 的使用