基于python的数据挖掘与可视化分析,python数据分析与可视化从入门到精通pdf
今天给大家分享一个可视化的干货,介绍了强大的开源Python画图库Plotly,教大家如何使用超简单(哪怕只有一行!)代码来绘制更好的图表。
我之前之所以一直用matplotlib,只是为了我在学习它复杂的语法中“沉没”的几百个小时的时间成本。这也导致我花了无数个深夜搜索StackOverflow,寻找如何“格式化日期”或“添加第二个Y轴”。
但是现在我们有了更好的选择:3354,比如Plotly,一个开源的Python画图库,简单易用,有据可查,功能强大。今天我就带大家来看看,怎么用在超简单(哪怕就一行!)代码来绘制更好的图表。
本文所有代码已经在Github上开源,所有图表都是交互式的。请使用Jupyter笔记本查看它们。
(Github源代码地址:3359github.com/willkoehrsen/data-analysis/blob/master/plot ly/plot ly旋风简介. ipynb)
(plotly的样图。图片:plot.ly)
Plotly概述
Plotly的Python软件包是一个开源的代码库,它是基于plot.js的,而后者是基于d3.js的我们实际使用的是一个封装了plotly的库,名为cufflinks,方便你和熊猫数据表协同工作。
*注:Plotly本身是一家可视化技术公司,拥有许多不同的产品和开源工具集。Plotly的Python库是免费使用的,你可以在离线模式下创建无限数量的图表。因为Plotly的分享服务是在线模式下使用的,所以只能生成25张图表并分享。
本文所有的视觉图表都是在Jupyter笔记本中离线模式下使用plotly袖扣库完成的。使用pip install cufflinks plotly完成安装后,您可以使用以下代码在Jupyter中完成导入:
单变量分布:直方图和箱线图
单变量分析图表往往是数据分析之初的标准做法,直方图基本上是单变量分布分析中必不可少的图表之一(虽然还是有一些不足)。
以博文的总点赞数为例(原始数据见github:https://github . com/willkoehrsen/data-analysis/tree/master/medium)做一个简单的交互直方图:
(代码中的df是一个标准的Pandas dataframe对象)
(由plotly袖扣创建的交互式直方图)
对于习惯了matplotlib的人来说,只需要再打一个字母(换。密谋。iplot)来获得看起来更漂亮的交互式图表!点击图片中的元素可以显示详细信息,可以随意放大缩小,还有一些突出显示、过滤某些部分等优秀的功能(我们接下来会提到)。
如果您想要绘制堆积直方图,您只需要:
对pandas数据表进行简单处理,生成柱状图;
如上图,我们可以整合plotly袖扣和熊猫的能力。例如,我们可以使用。pivot()先分析数据透视表,然后生成条形图。
比如统计每篇文章在不同发布渠道带来的新粉丝数量:
交互式图表的好处是我们可以随意探索数据,拆解分子术语进行分析。箱线图可以提供很多信息,但是如果看不到具体数值,很可能会漏掉很大一部分!
散点图
散点图是大多数分析的核心内容,可以让我们看到一个变量随时间的变化或者两个(或多个)变量之间的关系。
时间序列分析
在现实世界中,相当多的数据都有时间元素。好在plotly袖扣天生就有支持时间序列可视化分析的功能。
以我在“走向数据科学”网站上发表的文章数据为例。让我们以发表时间为指标建立一个数据集,看看文章受欢迎程度的变化:
在上图中,我们用一行代码完成了几件事:
自动生成漂亮的时间序列x轴,并添加第二个y轴,因为两个变量的范围不一致。将文章的标题放在鼠标悬停时显示的标签中。
为了显示更多的数据,我们可以方便地添加文字注释:
(带文本注释的散点图)
在下面的代码中,我们根据第三个分类变量对二元散点图进行着色:
接下来,我们要播放一些复杂的东西:对数轴。我们通过指定plotly的布局参数来实现(不同布局请参考官方文档https://plot.ly/python/reference/)。同时,我们用一个数值变量read_ratio(读取比率)绑定了网点大小(大小参数)。数字越大,气泡越大。
如果你想更复杂一点(详见Github的源代码),我们甚至可以把4个变量塞进一个图中!(但是,不建议你真的这么做)
和以前一样,我们可以将熊猫和精美的袖扣结合起来,制作出许多有用的图表:
建议你查一下官方文档或者源码,里面有更多的例子和函数例子。只需一两行简单的代码就可以添加有用的元素,如文本注释、辅助线、最佳拟合线等。到您的图表中,并保持原有的交互功能。
高级绘图功能
接下来,我们将详细介绍几个特殊的图表。通常,你可能不会经常使用它们,但我保证,只要你利用好它们,你就会印象深刻。要使用plotly的figure_factory模块,我们只需要一行代码就可以生成一个很棒的图表!
散点图矩阵
如果我们想要探索许多不同变量之间的关系,散点图矩阵(也称为SPLOM)是一个很好的选择:
即使如此复杂的图形也是完全交互式的,这使我们能够更详细地探索数据。
关系热图
为了反映几个数值变量之间的关系,我们可以计算它们的相关性,然后以带注释的热图的形式可视化它们:
魔法瓷砖
除了无尽的图表之外,袖扣还提供了许多不同的着色主题,让你可以轻松地在不同的图表风格之间切换。下面两张图分别是“空间”和“ggplot”的主题:
此外,还有3D图表(表面和气泡):
对于对研究感兴趣的用户来说,做一个饼状图并不难:
在Plotly Chart Studio中编辑
当你在Jupyter笔记本中生成这些图表时,你会在图表的右下角发现一个小链接,上面写着“导出到plot.ly (posted to plot.ly)”。如果你点击这个链接,你将跳转到一个“图表工作室”(https://plot.ly/create/)。
在这里,您可以在最终演示之前进一步修改和润色您的图表。您可以添加注释,选择某些元素的颜色,整理所有内容,并生成一个很棒的图表。之后还可以在网上发布,生成链接供他人查阅。
以下两张图片是在海图工作室制作的:
说了这么多,看腻了吗?但是,我们还没有穷尽这个库的所有功能。限于篇幅,有一些比较好的图表和例子,请访问plotly和袖扣的官方文档,逐一查看。
(Plotly互动图,展示了美国风电场的数据。来源:plot.ly)
最后.
沉没成本谬误最糟糕的地方在于,人们往往只有在放弃之前的努力时,才意识到自己浪费了多少时间。
选择图形库时,您最需要的功能是:
快速浏览数据所需的一行代码图表。分割/研究数据所需的交互元素。需要时可以深入细节的选项可以在最终显示之前轻松定制。从现在来看,似乎plotly是用Python实现上述功能的最佳选择。它允许我们快速生成可视化图表,交互功能使我们能够更好地理解信息。
我承认画画绝对是数据科学中最享受的部分,plotly可以让你更愉快地完成这些任务。
(用图表展示随着时间的推移用Python画画的乐趣。来源towardsdatascience.com)
2021年,是时候升级你的Python图片库,让自己在数据科学和可视化方面更快更强更漂亮了!
好了,今天就分享到这里。请喜欢~
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。