每天和你分享IT书籍、技术知识、职场知识
参与文末话题,领取异步新书
图形可视化是一种非常好的数据展示方式,好的图表自己会说话。毋庸置疑,在可视化的世界里,可视化是最著名的绘图库,支持几乎所有的2D绘图和一些3D绘图,在科学计算和数据可视化中被广泛使用。但是介绍可视化的中文书籍很少,而且大多数书籍只是在某些章节提到可视化的基本使用,内容和深度都不够。《数据可视化编程实践(第2版)》是一本专门介绍可视化的译著,超过70种方法,轻松上手可视化编程。
是一个由 John 发起的开源项目。关于 的由来有一段小故事。当时研究癫痫的 John 和同事们使用一款专有软件来做皮层电图分析,但他的实验室只有一个这款皮层电图分析软件的授权,他和很多和他一起工作的同事不得不轮流使用该软件的硬件加密狗。于是 John 便有了开发一个工具来替代当前软件的想法,当时它在生物医学界被广泛使用。John 原本想开发一个基于 的版本,但由于 的一些限制和缺点,而他对 又非常熟悉,于是便诞生了。
因此,无论是名称、函数名、参数和使用方式,都与 非常相似。对于一个开发者来说,使用起来会相当得心应手。即便是一个不熟悉的开发者(比如我),其函数的使用也能一目了然,而且有非常丰富的文档和示例。有了本书的介绍,学习起来会非常轻松。
该命令提供了一种交互式的绘图方式。在交互式 shell 中,我们可以执行命令实时绘制图形并进行修改。生成的图像可以保存为多种格式,具体取决于使用的后端,但大多数后端都支持 png、pdf、ps、eps 和 svg 等格式。
《实用数据可视化编程(第2版)》讲了什么?
在本书中,作者对内容进行了整理,删除了一些与章节关系不紧密的扩展内容,修改了版式,使得本书在内容安排上更加简洁紧凑。在本书中,作者还介绍了Plot.ly,一款功能强大、性能卓越的数据分析工具。Plot.ly是一款非常优秀的在线图表工具,非常注重图表的可操作性和分享性。在内容方面,第二版更加完整地涵盖了数据可视化领域使用的主流工具。限于篇幅,本书无法对所有工具进行完整详细的介绍,但本书介绍的工具可以满足读者大部分的数据可视化需求,读者可以根据自己的需求选择性地深入学习。
最好的数据是我们可以看到和理解的数据。作为开发人员和数据科学家,我们希望创建和构建最全面、最易于理解的可视化。然而,这不是一件容易的事。我们需要找到数据,阅读它,清理它,过滤它,然后使用正确的工具将其可视化。这本书以一种直接而简单(有时不那么简单)的方式解释了阅读、清理和可视化数据的过程。
本书介绍了如何读取本地数据、远程数据、CSV、JSON 和关系数据库中的数据。
我们可以用一行代码绘制一些简单的图表,但更高级的绘图需要额外的知识。我们需要了解信息理论和人类美学,才能生成最吸引人的可视化效果。
本书将介绍一些使用绘图的实践练习,以及不同图表功能的使用及其使用示例。
定义图表类型 - 条形图、折线图和堆积条形图
虽然我们画了一些图表,但是并没有详细介绍它们是如何工作的,也没有介绍如何设置图表等诸多功能。本文将介绍和练习一些最基本的数据可视化图表类型,例如折线图、条形图、柱状图、饼图及其变体。
它是一个功能强大的工具箱,可以满足几乎所有的 2D 和部分 3D 绘图需求。通过示例进行学习是其作者推荐的方式。当你以后需要绘制图表时,你可以找到类似的示例并进行一些修改以满足新的需求。
本节将向您展示基本图表及其用途。这里介绍的大多数图表都非常常用,其中一些是理解数据可视化中更高级概念的基础。
1.1.1 准备
我们从库中一些常用的图表入手,利用一些简单的示例数据开始一些基本的绘图操作,为后面章节奠定基础。
1.1.2 操作步骤
让我们从在 中创建一个简单的图表开始。这是一个非常好的工具,它允许我们以交互方式更改图表并立即查看结果。
(1)在命令行中输入以下命令启动。
1<strong>$ ipythonstrong>
(2)导入所需的方法。
1In [1]: from matplotlib.pyplot import *strong>
(3)然后输入情节代码。
1In [2]: plot([1,2,3,2,3,2,2,1])
2Out[2]: []
图表将显示在新打开的窗口中,其默认外观和辅助信息如图3-1所示。
基本图表包括以下元素。
图 1-1
您会注意到,我们提供给 plot() 的值是 y 轴的值。plot() 为 x 轴提供了默认值,在本例中为 0 到 7 的线性刻度。
现在,尝试通过在之前的会话中输入以下代码将 x 轴值添加为 plot() 的第一个参数。
1In [2]: plot([4,3,2,1],[1,2,3,4])
2Out[2]: []
注意输入和输出行是如何计数的(In[2] 和 Out[2])。这有助于我们记住当前会话中的位置,还允许使用更高级的功能,例如将会话的部分内容保存到文件中。原型设计是在数据分析过程中获得您喜欢的解决方案的最快方法,我们还可以将特定会话保存到文件中,以便将来重新生成相同的图。
该图表将如图 1-2 所示。
图 1-2
如图1-2所示,y轴被扩展以适应新的数值范围,并且第二条线的表示方式也自动改变(本书采用的是绘图方式),以便我们区分新的图形。
如果不关闭 hold 属性(通过调用 hold(False) 方法),所有后续绘图都将绘制在同一轴上。这是 pylab 模式下的默认行为,但在编写常规脚本时,hold 属性默认关闭 [1][1]。
让我们基于同一数据集生成一些更常见的图表以进行比较。您可以在 中输入以下代码,也可以在单独的脚本中运行它。
1from matplotlib.pyplot import *
2
3# some simple data
4x = [1,2,3,4]
5y = [5,4,3,2]
6# create new figure
7figure()
8
9# divide subplots into 2 x 3 grid
10# and select #1
11subplot(231)
12plot(x, y)
13
14# select #2
15subplot(232)
16bar(x, y)
17
18 # horizontal bar-charts
19subplot(233)
20barh(x, y)
21
22# create stacked bar charts
23subplot(234)
24bar(x, y)
25
26# we need more data for stacked bar charts
27y1 = [7,8,5,3]
28bar(x, y1, bottom=y, color = 'r')
29
30# box plot
31subplot(235)
32boxplot(x)
33
34# scatter plot
35subplot(236)
36scatter(x,y)
37
38show()
最终的图表如图 1-3 所示。
图 1-3
1.1.3 工作原理
通过调用 () 方法,我们创建一个新图表。如果为该方法指定了一个字符串参数,例如“”,则此字符串将成为窗口的背景标题。如果使用相同的参数(也可以是数字)调用 () 方法,则将激活相应的图表,并且所有后续绘制操作都将在此图表上执行。
接下来调用(231)方法将图表拆分为 2×3 的网格。也可以以(3,2,1)的形式调用,其中第一个参数为行数,第二个参数为列数,第三个参数表示图形的编号。
然后,我们使用几个简单的命令创建一个垂直条形图 (bar()) 和一个水平条形图 (barh())。对于堆叠条形图,我们需要将两个条形图方法调用链接在一起。通过设置参数 =y,我们将第二个条形图连接到前一个条形图以形成堆叠条形图。
通过调用 () 方法,可以创建一个箱线图,其箱线从下四分位数延伸到上四分位数,并带有一条中线。稍后我们会继续介绍箱线图。
最后,我们创建了一个散点图,以便让您了解基于点的数据集。当数据集有数千个点时,散点图可能更合适。但在这里,我们只想给出一个显示同一数据集的不同方式的示例。
1.1.4 其他说明
现在让我们回到箱线图并解释一些重要特征。
默认情况下,箱线图显示以下部分。
为了说明上述数据项,在下面的代码中,我们将使用相同的数据集来绘制箱线图和直方图。
1from pylab import *
2
3dataset = [113, 115, 119, 121, 124,
4 124, 125, 126, 126, 126,
5 127, 127, 128, 129, 130,
6 130, 131, 132, 133, 136]
7
8
9subplot(121)
10boxplot(dataset, vert=False)
11
12subplot(122)
13hist(dataset)
14
15show()
生成的图表如图1-4所示。
通过上面的比较,我们可以观察到两个图表在数据呈现上的差异。左边的图表(箱线图)呈现了上面提到的五个统计数据,而右边的图表(柱状图)则显示了给定范围内数据集的分组。
图 1-4
《数据可视化编程实践(第2版)》
[爱尔兰] 伊戈尔·米洛瓦诺维奇
本书是数据可视化编程的实用指南,介绍了如何使用最流行的库通过 70 多种方法创建漂亮的数据可视化效果。
全书共9章,介绍如何准备工作环境、理解数据、绘制和自定义图表、了解更多图表和自定义、创建3D可视化图表、使用图像和地图绘制图表、使用正确的图表理解数据、更多知识、以及使用Plot.ly进行云可视化。
今日互动
你最近在读哪本书?9月10日17点前留言并转发此活动到你的朋友圈,编辑将抽奖选出2名读者各赠送1本纸质书,1名读者赠送电子书电子阅读版。
扫一扫在手机端查看
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。