Python数据可视化2.2 Ebola案例

简介:

2.2 Ebola案例


为了说明上述步骤如何得到容易理解的可视化结果,不妨考虑一下我们先前提出的问题:2014年,报道的伊波拉病毒(Ebola)死亡人数是多少?数据来自世界卫生组织(http://www.who.int/en/)或者人道主义数据交换中心(https://hdx.rwlabs.org)。虽然该数据的原始来源是世界卫生组织(World Health Organization,WHO),但人道主义数据交换中心(Humanitarian Data Exchange,HDX)是贡献者。然而,请注意,我们将在同一个地方得到本书的所有数据,以及Python资源代码。

该数据包括Ebola疾病在几内亚、利比里亚、马里、尼日利亚、塞内加尔、塞拉利昂、西班牙、英国和美国的传播信息。

该信息由以下网址提供:https://data.hdx.rwlabs.org/dataset/ebola-cases-2014/。

CSV格式的数据文件的内容包括指标、国家名称、日期和与指标相关的死亡数量或感染数量。一共有36个指标,前10个指标如下(其他指标可见附录):

过去7天可能的Ebola案例数

过去21天可能的Ebola死亡数

过去21天疑似Ebola案例数

过去7天疑似Ebola案例数

过去21天疑似Ebola死亡数

过去21天Ebola案例的确认比例

过去7天Ebola案例的确认比例

过去21天Ebola死亡的确认比例

过去7天疑似Ebola案例比例

过去21天疑似Ebola死亡比例

了解完这些指标后,本章一开始提出的问题“2014年,报道的Ebola死亡人数是多少?”可以转换为多组问题。为了简单起见,我们持续关注一个问题,并观察如何才能够进一步分析这些数据,得到一个可视化方法。首先,让我们看一些数据文件的读取方法。

对于任何一种编程语言,读取文件的方法不止一种,有一种是用Python中的pandas库。这种方法有高性能的数据结构和数据分析工具。另一个选择是用csv库读取CSV格式的数据文件。这两种方法有什么不同呢?它们都可以读取数据。在旧版的pandas中,会遇到大数据的记忆映射问题(如果CSV格式的数据文件很大),但是现在已完成优化。代码如下:

 

上面的过滤也可以用pandas完成,具体如下:

 

数据可从http://www.knapdata.com/python/ebola.csv下载。下一步是用read text (rt)格式打开数据文件。因为指标字符串中有deaths这个单词,所以在读取每一行后,可以过滤死亡人数为0的那行。这是一种非常直接的过滤,被用于忽略没有报道的案例或死亡情况。下面只给出过滤后数据的前五行:

 

 

如果每个国家报道的Ebola案例的所有数据是分散的,我们怎样进一步过滤?其实可以按国家列将它们进行分类。该数据文件有四行:indicator、country、date和number value。代码如下:

 

看完数据后,有两个指标是我们感兴趣的:

确认的Ebola死亡累积数

确认的、可能的和疑似的Ebola死亡累积数

通过多次可视化应用,我们也注意到其中一些国家,几内亚、利比里亚和塞拉利昂比其他国家有更多被确认的死亡人数。现在,我们想看看应该怎样对报道中这三个国家的死亡人数进行绘图:

 

 

 

结果看起来如下图所示。

我们可以对另一个指标绘制类似的图,即:确认的、可能的、疑似的Ebola死亡累积数。(虽然这不是最好的方法,但可以通过绘制一个类似的图来展示更多国家的数据信息。)

 

 

 

 

结果应该如下图所示:

相关文章
|
5天前
|
Python
python集合的创建案例分享
在Python中,通过大括号或`set()`函数可创建集合。示例包括:使用大括号 `{}` 创建带元素的集合,如 `{1, 2, 3, 4, 5}`;使用 `set()` 函数从列表转换为集合,例如 `set([1, 2, 3, 4, 5])`,以及创建空集合 `set()`。当元素有重复时,集合会自动去重,如 `set([1, 2, 2, 3, 4, 4, 5])`。但尝试将不可哈希元素(如列表、字典)放入集合会引发 `TypeError`。
12 1
|
9天前
|
Python
Python文件操作学习应用案例详解
Python文件操作包括打开、读取、写入和关闭文件。使用`open()`函数以指定模式(如'r'、'w'、'a'或'r+')打开文件,然后用`read()`读取全部内容,`readline()`逐行读取,`write()`写入字符串。最后,别忘了用`close()`关闭文件,确保资源释放。
14 1
|
13天前
|
数据采集 JSON 数据可视化
【python】python懂车帝数据可视化(代码+报告)
【python】python懂车帝数据可视化(代码+报告)
|
1天前
|
Python
[重学Python]Day 2 Python经典案例简单习题6个
[重学Python]Day 2 Python经典案例简单习题6个
5 0
|
9天前
|
Python
Python数据类型学习应用案例详解
Python基础数据类型包括整数(int)、浮点数(float)、字符串(str)、布尔值(bool)、列表(list)、元组(tuple)、字典(dict)和集合(set)。整数和浮点数支持算术运算,字符串是不可变的文本,布尔值用于逻辑判断。列表是可变有序集合,元组不可变。字典是键值对的无序集合,可变,而集合是唯一元素的无序集合,同样可变。示例代码展示了这些类型的基本操作。
10 1
|
9天前
|
Python
Python控制结构学习应用案例详解
Python控制结构包含条件语句、循环语句和异常处理。条件语句用if-elif-else判断数字正负;for循环示例输出1到10的整数,while循环计算1到10的和;异常处理用try-except-finally处理除零错误,打印提示信息并结束。
9 3
|
9天前
|
Python
Python函数学习应用案例详解
学习Python函数的应用,包括计算两数之和、判断偶数、计算阶乘、生成斐波那契数列及反转字符串。示例代码展示了函数接收参数和返回结果的功能,如`add(a, b)`求和,`is_even(num)`判断偶数,`factorial(n)`计算阶乘,`fibonacci(n)`生成斐波那契数,以及`reverse_string(s)`反转字符串。
11 1
|
9天前
|
Python
Python面向对象编程学习应用案例详解
面向对象编程在Python中通过类定义对象结构和行为。示例:1) 使用`class`关键字定义类,如`class Person`;2) `__init__`方法初始化对象属性,如`self.name`和`self.age`;3) 实例化对象,如`person1 = Person("张三", 25)`;4) 访问属性和方法,如`person1.name`;5) 定义类方法,如`def introduce(self)`;6) 调用方法,如`person1.introduce()`;7) 类继承,如`class Student(Person)`;8) 多态,通过继承重写方法实现。
9 1
|
18天前
|
机器学习/深度学习 人工智能 数据可视化
基于Python的数据可视化技术在大数据分析中的应用
传统的大数据分析往往注重数据处理和计算,然而数据可视化作为一种重要的技术手段,在大数据分析中扮演着至关重要的角色。本文将介绍如何利用Python语言中丰富的数据可视化工具,结合大数据分析,实现更直观、高效的数据展示与分析。
|
22天前
|
数据可视化 数据挖掘 Python
Python中的数据可视化工具Matplotlib简介与实践
在本文中,我们将介绍Python中常用的数据可视化工具Matplotlib,包括其基本概念、常用功能以及实际应用。通过学习Matplotlib,读者可以更好地理解和运用数据可视化技术,提升数据分析与展示的能力。