- Python统计可视化之Altair探索分析实践指南(全彩版)
- 刘大成
- 756字
- 2022-05-05 22:17:51
1.3 vega_datasets的使用
Python包vega_datasets的主要用途就是获得离线数据集。因此,可以使用Python语言获得示例数据集。调用后,返回的数据集都是以Pandas的数据框(DataFrame)形式存储的。
这个数据框(DataFrame)对象是Altair的数据源,数据框对象的列是由不同的变量类型(数量型、次序型、名义型和日期时间型)所组成的。数据框对象是一种类似Excel或是SPSS的“整洁格式”(a tidy format),行对应案例数(cases),也就是样本(samples),列对应观察变量(observed variables),如图1.1所示。

图1.1
这个数据框对象在图形语法的作用下会被映射成可视化属性,包括位置、颜色、大小、形状、透明度等。
在这个Python包中,主要对象是data,可以使用下面的语句获得data。

在导入对象data之后,就可以加载示例数据集。有两种方法可以加载示例数据集,例如,加载cars数据集。
以函数形式调用对象data,将数据集以字符串形式作为参数传给函数data()。

调用与数据集关联的实例方法cars()。

方法一:可以使用实例方法head(),默认展示数据集全部变量的前5行观测记录,如图1.2所示。


图1.2
方法二:可以使用实例方法list_datasets(),列出全部可以使用的数据集,如下所示。

这些数据集有一部分保存在本地文件夹中,有些需要联网才能使用,可以使用对象local_data,获得保存在本地的数据集名称的列表。

如果需要了解数据集的URL来源,则可以使用属性url,实现方法如下所示。

说明:使用属性url获得数据集的URL来源,可以作为Altair的数据集的数据格式,也就是说,data.climate.url等同于Altair可以接受的数据结构。
如果需要了解数据集的本地保存位置,则可以使用属性filepath,实现方法如下所示。

说明:如果数据集不是保存在本地的,而是需要连接网络才能使用,那么程序会报错。

加载本地数据集的方法,除了上面两种,还可以使用pandas的API函数read_json(),将JSON字符串转化为数据框对象;还可以使用pandas的API函数read_csv(),将逗号分隔值(CSV)文件转成数据框对象。返回结果如图1.3所示。

图1.3

如果需要了解有关数据集cars的更多信息,则可以使用属性description。
