70种方法,轻松入门Python可视化编程

简介:

图形可视化是展示数据的一个非常好的手段,好的图表自己会说话。毋庸多言,在Python的世界里,matplotlib是最著名的绘图库,它支持几乎所有的2D绘图和部分3D绘图,被广泛地应用在科学计算和数据可视化领域。但是介绍matplotlib的中文书籍很少,大部分书籍只是在部分章节中提到了matplotlib的基本用法,因此在内容和深度上都力有不逮。《Python数据可视化编程实战(第2版)》则是一本专门介绍matplotlib的译著。70多个方法,轻松入门Python可视化编程。

matplotlib是一个开源项目,由John Hunter发起。关于matplotlib的由来,有一个小故事。John Hunter和他研究癫痫症的同事借助一个专有软件做脑皮层电图分析,但是他所在的实验室只有一份该电图分析软件的许可。他和许多一起工作的同事不得不轮流使用该软件的硬件加密狗。于是,John Hunter便有了开发一个工具来替代当前所使用的软件的想法。当时MATLAB被广泛应用在生物医学界中,John Hunter最初是想开发一个基于MATLAB的版本,但是由于MATLAB的一些限制和不足,加上他本身对Python非常熟悉,于是就有了matplotlib的诞生。

所以,无论从名字上,还是从所提供的函数名称、参数及使用方法,matplotlib都与MATLAB非常相似。对于一个MATLAB开发人员,使用matplotlib会相当得心应手。即使对不熟悉MATLAB的开发人员(譬如我),对其函数的使用也能够一目了然,而且matplotlib有着非常丰富的文档和实例,再加上本书的介绍,学习起来将会非常轻松。

matplotlib命令提供了交互绘图的方式,在Python的交互式shell中,我们可以执行matplotlib命令来实时地绘制图形并对其进行修改。生成的图像可以保存成许多格式,这取决于其所使用的后端,但绝大多数后端都支持如png、pdf、ps、eps和svg等格式。

《Python数据可视化编程实战(第2版)》讲什么?

在本书中,作者对内容进行了整理,剔除了一些与章节联系不是很大的延伸内容,对排版也进行了修改,使得本书在内容编排上更加简洁紧凑。在本书中,作者还引入了pandas和Plot.ly。其中pandas是一个功能强大且高性能的数据分析工具。Plot.ly是一款非常优秀的在线图表工具,它非常注重图表的可操作性及分享。在内容上,第2版更加完整地涵盖了Python数据可视化领域用到的主流工具。限于篇幅,本书不可能对所有工具做完整详细的介绍,但本书所讲的工具能满足读者大部分的数据可视化需要,读者可以根据自己的需要有选择地深入学习。

最好的数据是我们能看到并理解的数据。作为开发人员和数据科学家,我们希望可以创造并构建出最全面且容易理解的可视化图形。然而这并非易事,我们需要找到数据,对它读取、清理、过滤,然后使用恰当的工具将其可视化。本书通过直接和简单(有时不那么简单)的方法解释了进行数据读取、清理以及可视化的流程。

本书涉及如何读取本地数据、远程数据、CSV、JSON以及关系型数据库中的数据。

通过matplotlib,我们能用一行简单的Python代码绘制出一些简单的图表,但是进行更高级的绘图还需要Python之外的其他知识。我们需要理解信息理论和人类的审美学来生成最吸引人的可视化效果。

本书将介绍在Python中使用matplotlib绘图的一些实战练习,以及不同图表特性的使用情况及其用法示例。

定义图表类型——柱状图、线形图和堆积柱状图

虽然我们已经用matplotlib绘制了一些图表,但并没有详细介绍它们是怎么工作的,也没有介绍如何对图表设置以及matplotlib其他的许多功能。本文将介绍并练习一些最基本的数据可视化图表类型,如线形图、柱状图、直方图、饼图,以及它们的变形。

Matplotlib是一个强大的工具箱,能满足几乎所有2D和一些3D绘图的需求。通过示例学习matplotlib是其作者推荐的方式。当以后你需要画一个图表时,就可以找到一个相似的例子,然后做些改动来满足新的需求。

本节将展示基本的图表以及它们的用途。这里介绍的大多数图表都是很常用的,其中有一些是理解数据可视化中更高阶概念的基础。

1.1.1 准备工作

我们从matplotlib.pyplot库的一些常用图表入手,采用一些简单的样本数据开始一些基本的绘图操作,为后面几节内容打基础。

1.1.2 操作步骤

我们先在IPython中创建一个简单的图表。IPython是一个非常不错的工具,它能让我们交互式地改变图表并能即刻查看结果。

(1)在命令行键入以下命令来启动IPython。

(2)导入需要的方法。

(3)然后键入matplotlib plot代码。

图表会显示在一个新打开的窗口中,其默认的外观和辅助信息如图1-1所示。

Matplotlib中的基本图表包括以下元素。

x轴和y轴:水平和垂直的轴线。

x轴和y轴刻度:刻度表示坐标轴的分隔,包括最小刻度和最大刻度。

x轴和y轴刻度标签:表示特定坐标轴的值。

绘图区域:实际绘图的区域。

图1-1

你会注意到我们提供给plot()的值是y轴的值。plot()为x轴提供了默认值,在这里为0~7的线性值。

现在,试着通过plot()的第一个参数添加x轴的值,在刚才的IPython会话中键入以下代码。

注意IPython是如何对输入和输出行进行计数的(In[2]和Out[2])。这能帮助我们记住它在当前会话中的位置,并且IPython还提供了更高级的功能,例如把部分会话保存到Python文件中。在数据分析期间,用IPython做原型设计是得到满意方案的最快捷的方式,我们还可以将特定的会话存到文件中,以备将来重新生成相同的图表。

图表会变成图1-2所示的样子。

图1-2

从图1-2中可以看到,matplotlib通过扩展y轴来适应新的值范围,并且为了让我们能区分出新的图形,自动改变了第二个线条的表示方式(本书使用绘制方式)。

如果不关闭hold属性(通过调用hold(False)方法),所有接下来的图表都将绘制在相同的坐标轴下。这是IPython的pylab模式的默认行为,然而在编写常规Python脚本中,hold属性默认是关闭的。

让我们基于相同的数据集合多生成一些常见的图表来做一下比较。可以在IPython中键入下面的代码,或者在一个单独的Python脚本中运行它。

绘制出来的图表如图1-3所示。

1.1.3 工作原理

通过调用figure()方法,我们创建出一个新的图表。如果给该方法提供一个字符串参数,例如"sample charts",这个字符串就会成为窗口的后台标题。如果通过相同的参数(也可以是数字)调用figure()

方法,将会激活相应的图表,并且接下来的绘图操作都在此图表中进行。接下来,调用subplot(231)

方法把图表分割成2×3的网格。也可以用subplot(3,2,1)这种形式来调用,第一个参数是行数,第二个参数是列数,第三个参数表示图形的标号。接着用几个简单的命令创建垂直柱状图(bar())和水平柱状图(barh())。对于堆叠柱状图,我们需要把两个柱状图方法调用连在一起。通过设置参数bottom=y,把第二个柱状图和前一个柱状图连接起来形成堆叠柱状图。通过调用boxplot()方法可以创建箱线图,图中的箱体从下四分位数延伸到上四分位数,并带有一条中值线。后续我们会继续介绍箱线图。

最后创建了一个散点图来让大家对基于点的数据集合有所了解。当一个数据集合中有成千上万的数据点时,散点图很有可能就更合适了。但这里,我们只是想举例说明相同数据集合的不同展示方式。

1.1.4 补充说明

现在让我们回到箱线图,来解释一下几个重要特征。

默认情况下箱线图会显示以下几部分。

箱体:涵盖四分位数范围的矩形。

中值:箱体中间的一条线。

箱须:延伸到最大值和最小值的竖直的线,不包括异常值。

异常值:箱须之外的点。

为了说明上述的数据项,在接下来的代码中,我们将用同一个数据集合来绘制箱线图和直方图。

生成的图表如图1-4所示。

通过上述对比,我们可以观察到两种图表在数据展现上的差异。左图(箱线图)呈现了前面提到的5个统计数据,右图(直方图)展示了数据集合在给定范围内的分组情况。


《Python数据可视化编程实战(第2版)》

[爱尔兰] 伊戈尔·米洛瓦诺维奇 著

本书是一本使用Python实现数据可视化编程的实战指南,介绍了如何使用Python最流行的库,通过70余种方法创建美观的数据可视化效果

全书共9章,分别介绍了准备工作环境、了解数据、绘制并定制化图表、学习更多图表和定制化、创建3D可视化图表、用图像和地图绘制图表、使用正确的图表理解数据、更多的matplotlib知识以及使用Plot.ly进行云端可视化。

今日互动

你最近正在看哪本书?截止9月10日17时,留言+转本活动到朋友圈,小编将抽奖选出2名读者赠送纸书各1本1名读者赠送e读版电子书一本(参与活动直达微信端70种方法,轻松入门Python可视化编程)。​

长按二维码,可以关注我们哟

每天与你分享IT好文。

在“异步图书”后台回复“关注”,即可免费获得2000门在线视频课程

异步图书福利送不停

邀请10名好友关注10天直接获取异步图书一本(点击文字获取活动详情哦)

点击阅读原文,购买《Python数据可视化编程实战(第2版)

阅读原文

相关文章
|
1天前
|
缓存 算法 数据处理
Python入门:9.递归函数和高阶函数
在 Python 编程中,函数是核心组成部分之一。递归函数和高阶函数是 Python 中两个非常重要的特性。递归函数帮助我们以更直观的方式处理重复性问题,而高阶函数通过函数作为参数或返回值,为代码增添了极大的灵活性和优雅性。无论是实现复杂的算法还是处理数据流,这些工具都在开发者的工具箱中扮演着重要角色。本文将从概念入手,逐步带你掌握递归函数、匿名函数(lambda)以及高阶函数的核心要领和应用技巧。
Python入门:9.递归函数和高阶函数
|
1天前
|
开发者 Python
Python入门:8.Python中的函数
### 引言 在编写程序时,函数是一种强大的工具。它们可以将代码逻辑模块化,减少重复代码的编写,并提高程序的可读性和可维护性。无论是初学者还是资深开发者,深入理解函数的使用和设计都是编写高质量代码的基础。本文将从基础概念开始,逐步讲解 Python 中的函数及其高级特性。
Python入门:8.Python中的函数
|
1天前
|
存储 SQL 索引
Python入门:7.Pythond的内置容器
Python 提供了强大的内置容器(container)类型,用于存储和操作数据。容器是 Python 数据结构的核心部分,理解它们对于写出高效、可读的代码至关重要。在这篇博客中,我们将详细介绍 Python 的五种主要内置容器:字符串(str)、列表(list)、元组(tuple)、字典(dict)和集合(set)。
Python入门:7.Pythond的内置容器
|
1天前
|
存储 索引 Python
Python入门:6.深入解析Python中的序列
在 Python 中,**序列**是一种有序的数据结构,广泛应用于数据存储、操作和处理。序列的一个显著特点是支持通过**索引**访问数据。常见的序列类型包括字符串(`str`)、列表(`list`)和元组(`tuple`)。这些序列各有特点,既可以存储简单的字符,也可以存储复杂的对象。 为了帮助初学者掌握 Python 中的序列操作,本文将围绕**字符串**、**列表**和**元组**这三种序列类型,详细介绍其定义、常用方法和具体示例。
Python入门:6.深入解析Python中的序列
|
1天前
|
知识图谱 Python
Python入门:4.Python中的运算符
Python是一间强大而且便捷的编程语言,支持多种类型的运算符。在Python中,运算符被分为算术运算符、赋值运算符、复合赋值运算符、比较运算符和逻辑运算符等。本文将从基础到进阶进行分析,并通过一个综合案例展示其实际应用。
|
1天前
|
程序员 UED Python
Python入门:3.Python的输入和输出格式化
在 Python 编程中,输入与输出是程序与用户交互的核心部分。而输出格式化更是对程序表达能力的极大增强,可以让结果以清晰、美观且易读的方式呈现给用户。本文将深入探讨 Python 的输入与输出操作,特别是如何使用格式化方法来提升代码质量和可读性。
Python入门:3.Python的输入和输出格式化
|
1天前
|
存储 Linux iOS开发
Python入门:2.注释与变量的全面解析
在学习Python编程的过程中,注释和变量是必须掌握的两个基础概念。注释帮助我们理解代码的意图,而变量则是用于存储和操作数据的核心工具。熟练掌握这两者,不仅能提高代码的可读性和维护性,还能为后续学习复杂编程概念打下坚实的基础。
Python入门:2.注释与变量的全面解析
|
1天前
|
机器学习/深度学习 人工智能 算法框架/工具
Python入门:1.Python介绍
Python是一种功能强大、易于学习和运行的解释型高级语言。由**Guido van Rossum**于1991年创建,Python以其简洁、易读和十分工程化的设计而带来了庞大的用户群体和丰富的应用场景。这个语言在全球范围内都被认为是**创新和效率的重要工具**。
Python入门:1.Python介绍
|
11天前
|
JSON 数据可视化 API
Python 中调用 DeepSeek-R1 API的方法介绍,图文教程
本教程详细介绍了如何使用 Python 调用 DeepSeek 的 R1 大模型 API,适合编程新手。首先登录 DeepSeek 控制台获取 API Key,安装 Python 和 requests 库后,编写基础调用代码并运行。文末包含常见问题解答和更简单的可视化调用方法,建议收藏备用。 原文链接:[如何使用 Python 调用 DeepSeek-R1 API?](https://apifox.com/apiskills/how-to-call-the-deepseek-r1-api-using-python/)
|
23天前
|
存储 缓存 Java
Python高性能编程:五种核心优化技术的原理与Python代码
Python在高性能应用场景中常因执行速度不及C、C++等编译型语言而受质疑,但通过合理利用标准库的优化特性,如`__slots__`机制、列表推导式、`@lru_cache`装饰器和生成器等,可以显著提升代码效率。本文详细介绍了这些实用的性能优化技术,帮助开发者在不牺牲代码质量的前提下提高程序性能。实验数据表明,这些优化方法能在内存使用和计算效率方面带来显著改进,适用于大规模数据处理、递归计算等场景。
58 5
Python高性能编程:五种核心优化技术的原理与Python代码

热门文章

最新文章

推荐镜像

更多