
案例上手 Python 数据可视化
6 个可视化工具 + 20 个案例让数据分析更简单
优惠券已抵扣
余额抵扣
还需支付
¥49.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
CS创新实验室
致力于计算机、人工智能相关领域的研发和教学
展开
-
开篇词:为什么学习可视化,应该怎么学
每一本书或每一个课程,都会有前言或开篇词,但是,很多学习者不喜欢阅读前言,这就大错特错了,因为在前言中往往会包含一些作者想要表达的核心观点。我的日常工作就是写程序,业余时间也写了几本书,也有幸偶尔会与周边几所大学的一些学生分享某些技术。在与我交流的一些程序员、读者和学生中,会提出很多关于如何学习某项技能的问题——这里指的是软件开发或者大数据、机器学习方面,不包括诸如人际关系等技能。在这里,我把其...原创 2020-09-22 11:58:42 · 614 阅读 · 0 评论 -
第0-1课:数据科学工作流程
每门学科,都会有一些前置的信息,这里还要再继续唠叨唠叨,最好别引起你的反感呦。愚见,下面的信息,是需要首先明晰的。数据分析、人工智能等与数据相关的工作,其工作流程是什么?“数据可视化”,在数据科学中占有什么位置?为了学会数据可视化的各种技能,都需要哪些前置知识和能力?拙作《跟老齐学 Python:数据分析》一书中,列出了数据科学的发展简史,从中能体会到人类对数据的研究和应用。随着技术...原创 2020-09-22 11:58:40 · 449 阅读 · 0 评论 -
第0-2课:数据可视化的类别
走在大街上,满眼都是广告——说明市场经济发达,这是好事情。再观察一下广告,多是以各种样式的图形呈现,而不是简简单单地把数字呈现出来——即使是数字,也想办法把数字搞得像图一样。这样做的目的是要吸引人的注意,并且能够让人一眼就能看到想要看的。别以为这是广告商的策略,其实,他们只是顺应了大脑的特点(具体请参考有关心理学和脑科学的研究成果)。因为大脑的这种喜好,所以才非常有必要“数据可视化”,即用某种...原创 2020-09-22 11:58:39 · 759 阅读 · 0 评论 -
第0-3课:做好启动准备
本达人课不是针对零基础的学习者,需要具备以下知识。(1)Python 基础知识,包括但不限于:掌握 Python 内置的基本对象类型,如数字、字符串、列表、字典、元组等掌握 Python 的基本语法规则,如引入模块的方法、for 循环语句等掌握 Python 中函数的编写方法掌握 Python 中类的基本概念和了解面向对象的思想 这里推荐《Python 快速入门》达人课来学习。...原创 2020-09-22 11:58:37 · 189 阅读 · 0 评论 -
第1-1课:Matplotlib 初体验
从本课开始,将逐一介绍实现数据可视化的有关工具,第一个要学习的是 Matplotlib。初次看到这个名字,是不是会想到另外一个著名的数学工具:Matlab(没想到也不要紧,毕竟 Matlab 是一个在数学及相关领域使用的专门工具)。之所以要提及 Matlab,是因为它在与数学有关的应用方面颇有些神通,历史也很悠久。但是,随着应用的要求越来越多,这个有点“古老”的工具,显得力不从心了,于是乎在数据...原创 2020-09-22 11:58:36 · 461 阅读 · 0 评论 -
第1-2课:重新认识坐标系
在数据可视化中,坐标系是最基本的。在一张图纸上,只要建立了坐标系,图中的任何一个点就可以用数学方式描述清楚了。一般,小学学习了数轴,初中就开始学习了二维直角坐标系。但是,那仅仅是数学中的认识,现在要使用 Matplotlib 与已有的数学知识结合,对坐标系有新的认识。要很耐心地阅读以下内容,即便是“温故”,目的还是“知新”。通常所说的坐标系,也称为平面直角坐标系、正交坐标系、笛卡尔坐标系,英...原创 2020-09-22 11:58:34 · 952 阅读 · 0 评论 -
第1-3课:如何分区和绘图
在图纸上绘图,有时候整张图纸只绘制一幅图,有时候要绘制多幅图。在 Matplotlib 中要实现这种功能,可以使用 plt.subplots,前面已经用过此函数,此处要深入理解它的特点。首先,要引用 Matplotlib 的模块。%matplotlib inlineimport matplotlib.pyplot as pltimport matplotlibmatplotlib.rcP...原创 2020-09-22 11:58:33 · 467 阅读 · 0 评论 -
第1-4课:多样化的图像
在上一课,已经了解了基本的绘图方法,特别是熟悉了如何对坐标系做各种各样的设置,那是可视化的基础。本课要在上一课内容的基础上,进一步丰富坐标系内图像的设置。 注意,没有使用曲线这个词,显然包括但不限于曲线。1.4.1 标注如果在坐标系中绘制了多条曲线,会用图例表示出每条曲线的含义,这是一种区分方式;另外一种方式是直接对每条曲线进行标注,或许这样更直接明了。此外,有时候对于坐标系中某些特殊...原创 2020-09-22 11:58:31 · 151 阅读 · 0 评论 -
第1-5课:绘制柱形图和条形图
从本课开始,依次介绍常用的一些统计图表,以下引用来自维基百科中的“统计图表”词条部分内容。 图表(Chart),或又称为统计图表,代表了一张图像化的数据,并经常以所用的图像命名,例如圆饼图,是主要使用圆形符号,长条图或直方图,则主要使用长方形符号。折线图,意味着使用线条符号。 常见的图表包括:直方图(Histogram)、长条图(Bar Chart)、饼图(Pie Chart)、折线图(...原创 2020-09-22 11:58:30 · 885 阅读 · 0 评论 -
第1-6课:绘制箱线图、饼图和直方图
上一课介绍了柱形图和条形图,本课将介绍另外几种统计图表。1.6.1 箱线图Box Plot 有多种翻译,盒须图、盒式图、盒状图或箱线图、箱形图等,不管什么名称,它的基本结构是这样的:这种图是由美国著名统计学家约翰·图基(John Tukey)于 1977 年发明的,它能显示出一组数据的上限、下限、中位数及上下四分位数。中位数:由矩形箱子中的线表示。中位数常用于度量数据的中心,一半观测值...原创 2020-09-22 11:58:28 · 1276 阅读 · 0 评论 -
第2-1课:Seaborn 初体验
Seaborn 是基于 Matploblib 发展而来的实现数据可视化的库,它提供了一些更高级的工具,使得应用起来比 Matplotlib 更简单。因此,目前应用非常广泛。在第0-3课中已经说明了 Seaborn 的安装方法,如果尚未安装好,可以参考有关内容,或者参考 Seaborn 的官方网站。初步了解 SeabornSeaborn 的目的是通过对 Matplotlib 的更高级封装,可以自...原创 2020-09-22 11:58:27 · 205 阅读 · 0 评论 -
第2-2课:分类特征统计图
上一课已经体验到了 Seaborn 相对 Matplotlib 的优势,本课将要介绍的是 Seaborn 对分类数据的统计,也是它的长项。针对分类数据的统计图,可以使用 sns.catplot 绘制,其完整参数如下:seaborn.catplot(x=None, y=None, hue=None, data=None, row=None, col=None, col_wrap=None, es...原创 2020-09-22 11:58:25 · 438 阅读 · 0 评论 -
第2-3课:关系统计图和回归统计图
本课将要介绍的关系图和回归图,与上一课中的分类特征统计图的不同之处在于,这两类图的目的是发现 X 和 Y 轴两个变量之间的可能关系。2.3.1 关系统计图如果要研究两个变量之间的可能函数关系,依据以往的经验,可以通过散点图进行探索——注意,这里所说的散点图,与上一课提到的“分类特征的散点图”是不同的。还是看示例,来理解此处的散点图。%matplotlib inlineimport sea...原创 2020-09-22 11:58:24 · 459 阅读 · 0 评论 -
第2-4课:数据分布统计图和热图
本课将继续介绍 Seaborn 中的统计图。一定要牢记,Seaborn 是对 Matplotlib 的高级封装,它优化了很多古老的做图过程,因此才会看到一个函数解决问题的局面。2.4.1 数据分布统计图在统计学中,研究数据的分布情况,也是一个重要的工作,比如某些数据是否为正态分布——某些机器学习模型很在意数据的分布情况。在 Matplotlib 中,可以通过绘制直方图将数据的分布情况可视化。...原创 2020-09-22 11:58:22 · 2014 阅读 · 0 评论 -
第2-5课:实战练习
第一部分和第二部分所学的 Matplotlib 和 Seaborn 工具,是具有师承关系的两个数据可视化库,在实际项目中,可根据自己的喜好选择使用。本课将用它来展示两个实际的案例,从中窥见数据可视化在数据分析方面的威力。2.5.1 分析马拉松跑步数据在本课程的 github.com 数据仓库中,有此处所使用的数据集,请单击这里自行下载。import pandas as pdmarathon...原创 2020-09-22 11:58:21 · 139 阅读 · 0 评论 -
第3-1课:绘图新概念
前面两课分别介绍了 Matplotlib 和 Seaborn,其基本的绘图思想是一样的:面向对象修改或添加对象的属性。本课要介绍的 Plotnine,看标题就明白,它必然有不同以往之处,也的确与 Matplotlib 体系有所不同。Plotnine 在绘图上,引入了“图层”的概念——如果熟悉美工妹妹的工作,这个概念就不难理解。它不是师承于 Matplotlib,而是基于 ggplot2。3.1...原创 2020-09-22 11:58:19 · 171 阅读 · 0 评论 -
第3-2课:几何对象和美学映射
从上一课的初步体验中,我们已经获悉,只要加载了数据,并创建了“美学映射”之后,也就有了绘图的基础,然后要思考的就是:做什么形状的图,是散点图,还是箱线图?这些图就是所谓的“几何对象”,每个几何对象都是一个图层——也可以看做一个对象。正是基于这个认识,p9.geom_* 等这些几何对象才都是类,每个图层也就是某个类的实例。3.2.1 几何对象原来曾经写过的:(p9.ggplot(mg) ...原创 2020-09-22 11:58:18 · 237 阅读 · 0 评论 -
第3-3课:案例剖析
在 Plotnine 官方网站中,提供了一些比较经典的案例,如果能够将这些案例分析清楚,对提高 Plotnine 的应用技能大有裨益。本课就选择两个案例抛砖引玉,供参考。3.3.1 柱形图及坐标轴设置本案例是关于柱形图和对其坐标轴设置,案例中核心类为 plotnine.geoms.geom_col(点击这里详见官方地址)。还是先创建数据集:import pandas as pdimpor...原创 2020-09-22 11:58:16 · 146 阅读 · 0 评论 -
第4-1课:Plotly 初体验
前面学习的可视化工具,所绘制的图都是发布到本地的。如果别人想看,有两种方法:一种是跑到自己的计算机这边来看;另一种是导出图片发给对方。在当今网络如此发达的时代,还用这种古代的方式传播信息,的确有点太不上档次了。如果读者在这之前已经意识到问题了,说明你是一个善于发现问题的人。但这还不够,还要善于解决问题。当然,这个问题也不是今天才发现的,比如 Alex Johnson、Jack Parmer、Ch...原创 2020-09-22 11:58:15 · 369 阅读 · 0 评论 -
第4-2课:绘图类的应用
Plotly 的 plotly.graph_objs 库提供了很多种绘图类,涵盖了常用的统计图表,并且还有所拓展。不过,为了对类的理解更深刻,以下讲述将按照对象进行,不同的统计图依据相应的参数来实现。4.2.1 Scatter 类——绘制直线图、散点图在 plotly.graph_objs 中的 Scatter 类,功能比较多,用它能够绘制直线图、散点图等。根据经验,可以在 Jupyter ...原创 2020-09-22 11:58:13 · 172 阅读 · 0 评论 -
第4-3课:3 种统计图及示例
本课将继续学习其他类型的统计图,有了上一课的基础,学习下面的内容就比较容易了。不同类型的统计图,只是生成 Trace 对象的类的名称变化一下,其参数的调用方式大同小异。因此,当本课介绍几种统计图时,可能就不如以往那么细致,如果读者想要详细了解某些细节,就需要亲自阅读文档——这种方法是必须要掌握的。4.3.1 饼图继续使用上一课的数据集。import pandas as pdimport p...原创 2020-09-22 11:58:12 · 577 阅读 · 0 评论 -
第4-4课:高级制图案例剖析
Plotly 的内容非常多,不过,本着“弱水三千、只取一瓢饮”的原则,本达人课仅详细介绍一些基本知识,并借着这些知识向读者说明掌握 Plotly 制图的基本方法,特别是本达人课中反复强调过的方法——阅读文档。理解和使用这些方法,才是将来在项目实践中所向无敌的保证。本课会再选几个示例展示一些高级的制图方法。4.4.1 地理信息可视化地理信息可视化是数据可视化中一个非常重要的分支。前面若干课的工...原创 2020-09-22 11:58:10 · 240 阅读 · 0 评论 -
第5-1课:Pyecharts 初体验
从本课开始,我们终于能够阅读用中文写的文档了。因为 pyecharts 是国产的,它来自于百度的 ECharts 项目。 ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅地运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11、Chrome、Firefox、Safari 等),底层依赖轻量级的矢量图形库 ZRender,提供直观、交互丰富、可高...原创 2020-09-22 11:58:09 · 237 阅读 · 0 评论 -
第5-2课:地理信息可视化及扩展应用
在上一课中,我们已经介绍过使用 Plotly 实现地理信息可视化的方法。但是,那个工具对我们不是很友好,特别是由于某种不可抗力的存在,可能根本无法调试。不过,pyecharts 的确在地理信息可视化上做得不错——如果仅做国内地图,特别推荐使用,还是通过示例来说明吧。首先,要安装地图文件,安装方法如下:$ pip install echarts-countries-pypkg ...原创 2020-09-22 11:58:08 · 634 阅读 · 0 评论 -
第6-1课:Bokeh 初体验
岛国,在我朝的东边,我朝臣民对它的心态可以说比较复杂了。就软件领域而言,它的存在感貌似不大,其实不然。就拿国内的一些大厂,有不少其背后会有一家岛国公司身影——软银。岛国技术人员为开源领域的贡献,也同样精彩,比如很有名的 Ruby 语言,发明者为 Yukihiro Matsumoto,是一名岛国程序员。本课要介绍的 Bokeh 也是岛国程序员发明的,专用于数据可视化。维基百科的词条 Bokeh 介...原创 2020-09-22 11:58:06 · 258 阅读 · 0 评论 -
第6-2课:常用图形
Bokeh 与以往的绘图工具类似,不同之处在于,前面的工具都是以绘制统计图,通常会直接提供专门绘制统计图的函数,但是 Bokeh 中提供的图线模型,是以常见的几何图形或者曲线为主,同时能够用它们绘制常见的统计图。从这点来说,Bokeh 更捉住了数据可视化的未来发展——不局限于统计图范畴。下面就列举几种图形或曲线的绘制方法(这些方法在官方文档中都有详细说明),读者可以从中体会 Bokeh 的特点。...原创 2020-09-22 11:58:05 · 163 阅读 · 0 评论 -
第6-3课:重在交互
经过我们前面的讲解,已经基本展示了 Bokeh 的应用。但是,或许也留下了一个不太好的印象,似乎这个东西的功能也没有什么太特别的,尤其是针对某些常用统计图而言,缺少以往工具的那种更直接的方法。对于 Bokeh 而言,我认为它并非是为绘制统计图而生,而是为多样化的、更灵活的数据可视化而生,特别是在交互性上,它的特色就非常鲜明了。首先,要确定已经把安装的 Bokeh 设置了环境变量。例如我在自己的计...原创 2020-09-22 11:58:03 · 410 阅读 · 0 评论 -
结束语:在学习中应用,在应用中学习
本达人课介绍了各具特点的多种实现数据可视化的工具,读者应该根据自己的需要,有重点地掌握,特别是结合实际的项目需要。不论哪一个工具,都有完善的官方文档,那么本达人课充其量是引领入门,要向对该工具有较深入的理解,还需要阅读官方文档。学习和应用是两个不同的过程。学习某项技能,必须从一招一式开始,或许感到枯燥,但这是基础;应用则是要根据实际需要灵活地综合运用所有技能了。 那“独孤九剑”中的“破剑...原创 2020-09-22 11:58:02 · 237 阅读 · 0 评论