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



这是一个不同国家回答“人类是否早期动物物种”的“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

目录
相关文章
|
7月前
|
数据采集 数据可视化 搜索推荐
《统计学简易速速上手小册》第2章:数据探索与可视化(2024 最新版)
《统计学简易速速上手小册》第2章:数据探索与可视化(2024 最新版)
62 1
|
3月前
|
数据可视化 数据挖掘 Linux
震撼发布!Python数据分析师必学,Matplotlib与Seaborn数据可视化实战全攻略!
在数据科学领域,数据可视化是连接数据与洞察的桥梁,能让复杂的关系变得直观。本文通过实战案例,介绍Python数据分析师必备的Matplotlib与Seaborn两大可视化工具。首先,通过Matplotlib绘制基本折线图;接着,使用Seaborn绘制统计分布图;最后,结合两者在同一图表中展示数据分布与趋势,帮助你提升数据可视化技能,更好地讲述数据故事。
53 1
|
3月前
|
存储 数据可视化 数据挖掘
揭秘!Matplotlib与Seaborn联手,如何让Python数据分析结果一目了然,惊艳全场?
在数据驱动时代,高效直观地展示分析结果至关重要。Python中的Matplotlib与Seaborn是两大可视化工具,结合使用可生成美观且具洞察力的图表。本文通过分析某电商平台的商品销量数据集,展示了如何利用这两个库揭示商品类别与月份间的销售关系及价格对销量的影响。首先使用Matplotlib绘制月份销量分布直方图,再借助Seaborn的箱线图进一步探索不同类别和价格区间下的销量稳定性。
64 10
|
4月前
|
数据可视化 JavaScript 前端开发
惊世奇迹!D3.js 铸就数据可视化辉煌,探索交互式图表与效果的奇幻之旅!
【8月更文挑战第12天】在数据驱动的时代,D3.js 作为领先的 JavaScript 库,以其强大的功能和灵活性在数据可视化领域脱颖而出。开发者可通过 D3.js 构建精美的交互式图表,如简单的柱状图或具备缩放拖拽功能的折线图,甚至将数据以地图、树形结构等独特形式展现。尽管学习曲线陡峭,但它在数据分析、商业智能等领域的广泛应用使其成为专业人士传达数据故事、辅助决策制定的强大工具。
98 1
|
4月前
|
数据可视化 数据挖掘 Python
这个颜值爆表的数据可视化神器,我可以用到2081年!
这个颜值爆表的数据可视化神器,我可以用到2081年!
33 1
|
4月前
|
数据可视化 Python
Python 绘图编程:一场震撼视觉的奇幻之旅,带你闯入绚丽多彩的数据可视化世界!
【8月更文挑战第22天】Python 以强大功能和简洁语法闻名,其绘图能力尤其出色,助力数据可视化与创意展现。常用绘图库 Matplotlib 提供丰富指令,支持多样图表创作,如线图、柱状图及散点图等。通过简单代码即可完成数据展示,包括设置标题、轴标签等,实现直观的数据故事叙述,满足不同场景需求。不断实践探索,创造更佳视觉效果。
35 0
|
5月前
|
数据可视化 数据挖掘 Python
|
4月前
|
数据可视化
可视化神器,必须分享给宝子们,太香了
可视化神器,必须分享给宝子们,太香了
|
7月前
|
人工智能 搜索推荐 数据挖掘
《统计学简易速速上手小册》第10章:案例研究和未来趋势(2024 最新版)
《统计学简易速速上手小册》第10章:案例研究和未来趋势(2024 最新版)
67 0
QGS
|
7月前
|
JSON 缓存 JavaScript
手拉手浅学JSONCrack数据可视化
手拉手浅学JSONCrack数据可视化
QGS
86 1