功能强大、文档健全的开源 Python 绘图库 Plotly,手把手教你用!

python开发桌面程序21个Python爬虫开源项目代码,包含微信,已收藏 部分代码截图:11. wooyun_public -乌云爬虫。乌云公开漏洞、知识库爬虫和搜索。全部公开漏洞的列表和每个漏洞的文本内容存在MongoDB中,大概约2G内容;如果整站爬全部文本和图片作为离线查询,大概需要10G空间、2小时(10M电信带宽);爬取全部知识库,总共约500M空间。漏洞搜索使用了Flask作为web server,bootstrap作为前端。部分代码:12. spider – hao123网站爬虫。 阅读详情

公众号 “菜鸟学Python”, 设为 “星标”

和30w+一起学Python!

译者:欧剃 

https://towardsdatascience.com/the-next-level-of-data-visualization-in-python-dd6e99039d5e

今天就带你深入体验易于使用、文档健全、功能强大的开源 Python 绘图库 Plotly,教你如何用超简单的(甚至只要一行!)代码,绘制出更棒的图表。

“沉没成本谬误”是人们常犯的几种认知偏差之一:由于在某件事上已经投入了(“沉没”)太多的成本,即使这件事已经注定要失败,人们倾向于继续投入更多的时间和金钱。

比如,在不好的职位上待了比正常更长的时间,在一个明显不可能的项目上埋头苦干,以及(你猜的没错)继续用一个陈旧、枯燥的绘图库——matplotlib——即使已经有了更高效、更美观、可互动性更好的替代品了。

我之前一直守着 matplotlib 用的原因,就是为了我学会它复杂的语法,已经“沉没"在里面的几百个小时的时间成本。这也导致我花费了不知多少个深夜,在 StackOverflow 上搜索如何“格式化日期”或“增加第二个Y轴”。

但我们现在有一个更好的选择了 —— 比如易于使用、文档健全、功能强大的开源 Python 绘图库 Plotly。今天就带你深入体验下,了解它如何用超简单的(甚至只要一行!)代码,绘制出更棒的图表。

* 本文中所有代码都已经在 Github 上开源,所有的图表都是可交互的,请使用NBViewer查看 。

(Github 源代码地址:https://github.com/WillKoehrsen/Data-Analysis/blob/master/plotly/Plotly%20Whirlwind%20Introduction.ipynb)

(plotly 绘制的范例图表。图片来源:plot.ly)

Plotly 概述

plotly 的 Python 软件包是一个开源的代码库,它基于 plot.js,而后者基于 d3.js。我们实际使用的则是一个对 plotly 进行封装的库,名叫 cufflinks,它能让你更方便地使用 plotly 和 Pandas 数据表协同工作。

*注:Plotly 本身是一个拥有多个不同产品和开源工具集的可视化技术公司。Plotly 的 Python 库是可以免费使用的,在离线模式可以创建数量不限的图表,在线模式因为用到了 Plotly 的共享服务,只能生成并分享 25 张图表。

本文中的所有可视化图表都是在 Jupyter Notebook 中使用离线模式的 plotly + cufflinks 库完成的。在使用 pip install cufflinks plotly 完成安装后,你可以用下面这样的代码在 Jupyter 里完成导入:


单变量分布:柱状图和箱形图

单变量分析图往往是开始数据分析时的标准做法,而柱状图基本上算是单变量分布分析时必备的图表之一(虽然它还有一些不足)。

就拿博客文章点赞总数为例(原始数据见 Github:https://github.com/WillKoehrsen/Data-Analysis/tree/master/medium ),做一个简单的交互式柱状图:

(代码中的 df 是标准的 Pandas dataframe 对象)

(使用 plotly+cufflinks 创建的交互式柱状图)

对于已经习惯 matplotlib 的同学,你们只需要多打一个字母(把 .plot 改成 .iplot ),就能获得看起来更加美观的交互式图表!点击图片上的元素就能显示出详细信息、随意缩放,还带有(我们接下来会提到的)高亮筛选某些部分等超棒功能。

如果你想绘制堆叠柱状图,也只需要这样:

对 pandas 数据表进行简单的处理,并生成条形图:

就像上面展示的那样,我们可以将 plotly + cufflinks 和 pandas 的能力整合在一起。比如,我们可以先用 .pivot() 进行数据透视表分析,然后再生成条形图。

比如统计不同发表渠道中,每篇文章带来的新增粉丝数:

交互式图表带来的好处是,我们可以随意探索数据、拆分子项进行分析。箱型图能提供大量的信息,但如果你看不到具体数值,你很可能会错过其中的一大部分!

散点图

散点图是大多数分析的核心内容,它能让我们看出一个变量随着时间推移的变化情况,或是两个(或多个)变量之间的关系变化情况。

时间序列分析

在现实世界中,相当部分的数据都带有时间元素。幸运的是,plotly + cufflinks 天生就带有支持时间序列可视化分析的功能。

以我在“Towards Data Science”网站上发表的文章数据为例,让我们以发布时间为索引构建一个数据集,看看文章热度的变化情况:

在上图中,我们用一行代码完成了几件事情:

  • 自动生成美观的时间序列 X 轴

  • 增加第二条 Y 轴,因为两个变量的范围并不一致

  • 把文章标题放在鼠标悬停时显示的标签中

为了显示更多数据,我们可以方便地添加文本注释:

(带有文本注释的散点图)

下面的代码中,我们将一个双变量散点图按第三个分类变量进行着色:

接下来我们要玩点复杂的:对数坐标轴。我们通过指定 plotly 的布局(layout)参数来实现这一点(关于不同的布局,请参考官方文档 https://plot.ly/python/reference/ ),同时我们把点的尺寸(size参数)和一个数值变量 read_ratio (阅读比例)绑定,数字越大,泡泡的尺寸也越大。

如果想要更复杂一些(详见 Github 的源代码),我们甚至可以在一张图里塞进 4 个变量!(然而并不推荐你们真的这么搞)

和前面一样,我们可以将 pandas 和 plotly+cufflinks 结合起来,实现许多有用的图表:

建议你查看官方文档,或者源代码,里面有更多的范例和函数实例。只需要简单的一两行代码,就可以为你的图表加上文字注释,辅助线,最佳拟合线等有用的元素,并且保持原有的各种交互式功能。

高级绘图功能

接下来,我们要详细介绍几种特殊的图表,平时你可能并不会很经常用到它们,但我保证只要你用好了它们,一定能让人刮目相看。我们要用到 plotly 的 figure_factory 模块,只需要一行代码,就能生成超棒的图表!

散点图矩阵

假如我们要探索许多不同变量之间的关系,散点图矩阵(也被称为SPLOM)就是个很棒的选择:

即使是这样复杂的图形,也是完全可交互的,让我们能更详尽地对数据进行探索。

关系热图

为了体现多个数值变量间的关系,我们可以计算它们的相关性,然后用带标注热度图的形式进行可视化:

自定义主题

除了层出不穷的各种图表外,Cufflinks 还提供了许多不同的着色主题,方便你轻松切换各种不同的图表风格。下面两张图分别是“太空”主题和“ggplot”主题:

此外,还有 3D 图表(曲面和泡泡):

对有兴趣研究的用户来说,做张饼图也不是什么难事:


在 Plotly 图表工坊(Plotly Chart Studio)里编辑

当你在 Jupyter Notebook 里生成了这些图表之后,你将会发现图表的右下角出现了一个小小的链接,写着“Export to plot.ly(发布到 plot.ly)”。如果你点击这个链接,你将会跳转到一个“图表工坊”(https://plot.ly/create/)。

在这里,你可以在最终展示之前进一步修改和润色你的图表。可以添加标注,选择某些元素的颜色,把一切都整理清楚,生成一个超棒的图表。之后,你还可以将它发布到网络上,生成一个供其他人查阅的链接。

下面两张图是在图表工坊里制作的:

讲了这么多,看都看累了吧?然而我们还并没有穷尽这个库的所有功能。限于篇幅,有些更棒的图表和范例,只好请大家访问 plotly 和 cufflinks 的官方文档去一一查看咯。

(Plotly 交互式地图,显示了美国国内的风力发电场数据。来源:plot.ly)


最后 ……

关于沉没成本谬误,最糟糕的一点在于,人们往往只能在放弃之前的努力时,才能意识到自己浪费了多少时间。

在选择一款绘图库的时候,你最需要的几个功能有:

  • 快速探索数据所需的一行代码图表

  • 拆分/研究数据所需的交互式元素

  • 当需要时可以深入细节信息的选项

  • 最终展示前能轻易进行定制

从现在看来,要用 Python 语言实现以上功能的最佳选择非 plotly 莫属。它让我们快速生成可视化图表,交互功能使我们更好地理解信息。

我承认,绘图绝对是数据科学工作中最让人享受的部分,而 plotly 能让你更加愉悦地完成这些任务。

(用一张图表显示一下用 Python 绘图的愉悦程度随着时间变化。来源 towardsdatascience.com)

2020 年是时候升级你的 Python 绘图库了,让自己在数据科学和可视化方面变得更快、更强、更美吧!

近期热门文章

Python库Plotly学习笔记 Plotly是一个用于创建交互式图形的Python库。它提供了丰富的图表类型,包括散点图、线图、柱状图、热力图、饼图等,以及高级的可视化功能,如动画、交互、数据缩放和拖动等。 阅读详情

相关推荐

Python Plotly交互可视化详解~

plotly 的 Python 软件包是一个开源的代码库,它基于 plot.js,而后者基于 d3.js。我们实际使用的则是一个对 plotly 进行封装的库,名叫 cufflinks,它能让你更方便地使用 plotly 和 Pandas 数据表协同工作。_*注:__Plotly 本身是一个拥有多个不同产品和开源工具集的可视化技术公司。Plotly 的 Python 库是可以免费使用的,在离线模式可以创建数量不限的图表,在线模式因为用到了 Plotly 的共享服务,只能生成并分享 25 张图表。

Saki_Python的博客 1361

【Python】Plotly:最强的Python可视化包(超详细讲解+各类源代码案例)(一)

【Python】Plotly:最强的Python可视化包(超详细讲解+各类源代码案例)(一)

wzk4869的博客 1万+

Python Plotly交互可视化详解

plotly 的 Python 软件包是一个开源的代码库,它基于 plot.js,而后者基于 d3.js。我们实际使用的则是一个对 plotly 进行封装的库,名叫 cufflinks,它能让你更方便地使用 plotly 和 Pandas 数据表协同工作。_*注:__Plotly 本身是一个拥有多个不同产品和开源工具集的可视化技术公司。Plotly 的 Python 库是可以免费使用的,在离线模式可以创建数量不限的图表,在线模式因为用到了 Plotly 的共享服务,只能生成并分享 25 张图表。

Saki_Python的博客 1589

Plotly:最强Python可视化库,没有之一

之前一直使用 matplotlib,这也导致我花费了不知多少个深夜,在 StackOverflow 上搜索如何“格式化日期”或“增加第二个Y轴”,使用 matplotlib 画张图使用了太多的时间。 今天我要给大家分享一篇可视化干货,介绍的是功能强大的开源 Python 绘图库 Plotly,教你如何用超简单的(甚至只要一行)代码,绘制出更棒的图表。喜欢本文记得收藏、点赞、关注。 注:完整版代码、数据、技术交流文末获取 Plotly 概述 plotly 的 Python 软件包是一个开源的代码库,它基于 p

Python学习与数据挖掘 6万+

python如何自动生成流程图

在上面的示例代码中,我们将format属性设置为’png’,然后使用render方法将流程图保存为PNG格式的图片文件。同时,我们使用filename属性指定文件名为’simple-process’,使用directory属性指定保存到当前工作目录中,使用cleanup属性设置为True,以便在渲染结束后自动删除生成的中间文件。运行上述代码后,会生成一个名为simple-process.gv的文件,并在浏览器中自动打开该文件,展示生成的流程图。

zhangzhechun的专栏 1万+

死磕GMSSL通信-java/Netty系列(二)

Netty-tcnative再linux编译比较好编译,但是再window编译,我尝试了各种办法,总是编译失败,所以我采用半自动的方式进行编译,Netty-tcnative会生成临时文件,直接用vs打开,设置openssl的头文件和静态库路径,然后生成静态库,静态库改个名字放到jar包里边,其实自动编译也是这个原理哈哈O(∩_∩)O。直接传输五个证书的路径吗,之前有的是说要转成x509之类的,转来转去的有点麻烦,这个是直接传输证书路径,由底层gmssl去解析,格式必须是pem格式。然而,若项目已依赖于。

qq_36577699的博客 3027

js离线文档_功能强大、文档健全的开源 Python 绘图库 Plotly,手把手教你用!

(点击上方快速关注并设置为星标,一起学Python)译者:欧剃 编辑:肉松 来源:https://towardsdatascience.com/the-next-level-of-data-visualization-in-python-dd6e99039d5e今天就带你深入体验易于使用、文档健全、功能强大的开源 Python 绘图库Plotly,教你如何用超简单...

weixin_39633276的博客 202

加密视频如何破解 如何解除机器码绑定的视频

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 如何破解加密...

Q-980767270的博客 5万+

ggplot绘制柱状图 python_功能强大、文档健全的开源 Python 绘图库 Plotly,手把手教你用!...

(点击上方快速关注并设置为星标,一起学Python)译者:欧剃 编辑:肉松 来源:https://towardsdatascience.com/the-next-level-of-data-visualization-in-python-dd6e99039d5e今天就带你深入体验易于使用、文档健全、功能强大的开源 Python 绘图库Plotly,教你如何用超简单...

weixin_36397256的博客 176

NLPIR 汉语分词系统 (PyNLPIR) 学习手札

1 关于NLPIR最近在做一些NLP相关的任务,其中一个关键的子任务就是如何对汉语进行分词?关于分词的方式,有很多很多,也是很多学习者的练手任务(比如我们当时的期末作业就有这个)。但是,轮子还是要搬来用,自己写的分词只能说是去了解这个方式(了解某个算法),做出来的都是能看不能用,毕竟模型、算法、语料库等一座座大山等着我们攻克。所以,我找了一些资料,看到一个不错的教程,他用了NLPIR,所以我也跟着使

MebiuW的专栏 2万+

大话西游2经典单机版V8:一键架设+GM全功能+仙玉自由修改

本文详细介绍大话西游2经典单机版V8的一键架设教程和GM全功能使用指南,包括仙玉自由修改技巧。该版本无需虚拟机,解压即玩,完美还原官服经典玩法,支持离线运行,是老玩家重温经典和新玩家体验游戏的理想选择。

weixin_27303545的博客 1135

功能强大、文档健全的开源 Python 绘图库 Plotly,手把手教你用(1)

不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~给大家准备的学习资料包括但不限于:Python 环境、pycharm编辑器/永久激活/翻译插件python 零基础视频教程Python 界面开发实战教程Python 爬虫实战教程Python 数据分析实战教程python 游戏开发实战教程Python 电子书100本。

pCITv1C的博客 1081

13、使用 Mathematica 撰写文本

本文详细介绍了如何使用 Mathematica 进行文本撰写与处理。内容涵盖文本输入、格式设置、结构化排版、超链接插入、翻译与拼写检查工具的使用,以及将笔记本导出为多种格式(如 PDF、HTML、LATEX 和 RTF)的方法。通过实例演示了创建专业文档的完整流程,包括样式设置、公式推导、标题编号、页眉页脚配置等操作。适合希望利用 Mathematica 编写学术论文、技术报告或教学资料的用户参考。

sony5的博客 209

文末送书 | 手把手教你玩转,Python 会交互的超强绘图库 Plotly!

作者:Will Koehrsen,译者:欧剃,编辑:肉松原文:https://towardsdatascience.com/the-next-level-of-data-visualiz...

SeizeeveryDay的博客 614

优快云 2

2

qq_62260432的博客 5237

2026年高教社杯数学建模国赛A题解题思路:从物理方程推导到MATLAB高效求解的全流程实战指南

□所有代码能够从头运行到尾,不报错(清除workspace重新跑一遍)□论文中的每个图号、表号、公式编号与正文引用一致□附录中附上核心代码(注意:不是全部代码,而是关键求解器和后处理部分)□支撑材料压缩包包含完整代码、数据文件、README说明□摘要字数严格控制在1000字以内,突出创新点和核心结果□。

YOLO 111

这是一款功能强大的开源 Python 绘图库

plotly 的 Python 软件包是一个开源的代码库,它基于 plot.js,而后者基于 d3.js。我们实际使用的则是一个对 plotly 进行封装的库,名叫 cufflinks,它能让你更方便地使用 plotly 和 Pandas 数据表协同工作。_*注:__Plotly 本身是一个拥有多个不同产品和开源工具集的可视化技术公司。_Plotly 的 Python 库是可以免费使用的,在离线模式可以创建数量不限的图表,在线模式因为用到了 Plotly 的共享服务,只能生成并分享 25 张图表。

m0_59596937的博客 544

AI原生应用评测:主流大语言模型性能对比

任务适配性:是否匹配应用的核心任务(如代码生成需强逻辑推理,内容创作需强创意性);上下文能力:处理长序列(如10万+字文档)的理解与生成能力;可靠性:幻觉(Hallucination)率、事实准确性、安全合规性;性价比:API调用成本、延迟、 scalability(扩展能力)。AI原生应用的核心是LLM与应用场景的深度协同。

架构师的AI之路,分享AI应用开发架构的学习与实践。 508

Python绘图库Plotly用超简单代码实现丰富的数据可视化图表

数据分析离不开数据可视化。Plotly 是一款用来做数据分析和可视化的在线平台,功能非常强大,可以在线绘制很多图形比如条形图、散点图、饼图、直方图等等今天给大家分享一篇可视化干货,介绍的是功能强大的开源 Python 绘图库 Plotly,教你如何用超简单的(甚至只要一行)代码,绘制出更棒的图表。

2301_80239908的博客 1877

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

上一篇: Debug无忧!清华校友打造Python调试神器!
下一篇: 详解16个Pandas函数,让你的 “数据清洗” 能力提高100倍!
菜鸟学Python
博客等级 码龄9年 8088粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值