目录
🌹答案: Answers-to-Python-Crash-Course【请前往对应章节】
数据可视化指的是通过可视化表示来探索数据,它与数据挖掘紧密相关,而数据挖掘是使用代码来探索数据集的规律和关联。
chap15 生成数据
本章将学习如何生成数据以及如何对其进行可视化,将介绍两个库:一是matplotlib创建简单的图表,以及如何使用散点图来探索随机漫步过程;二是Pygal创建直方图,以及使用直方图来探索同时掷两个面数不同的骰子的结果。
15.2 绘制简单的折线图
Step1:导入pyplot模块(此模块中包含很多用于生成图表的函数),并指定别名,以免反复输入pyplot
import matplotlib.pyplot as plt
Step2:创建列表,在其中存储平方数
squares=[1,4,9,16,25]
Step3:将列表传递给函数plot(),这个函数尝试尝试根据列表提供的数字绘制出有意义的图形
plt.plot(squares)
Step4:打开matplotlib查看并显示绘制的图形
plt.show()
学会了如何绘制图形,我们还需要做一系列的后续操作。
- 图形更容易阅读
下面介绍一些对图形的基本操作:操作 代码 改线条粗细 plt.plot(<列表名>, linewidth=<粗细值>) 置图表标题 plt.title(<标题名>, fontsize=<字号>) 修改标签文字 plt.xlable/ylable(<标签名>, fontsize=<字号>) 修改线条粗细 plt.tick_params(axis=‘both’, lablesize=<字号>) - 正确绘制图形
当你向plot()提供一系列数字时,它假设第一个数据点对应的 x x x坐标值为0,但我们提供的序列的第一个点对应的 x x x值为1。为改变这种默认行为,可以给plot()同时提供输入值和输出值,即对应的步骤变为:
Step2:提供输入值和输出值
Step3:将列表传递给函数plot(),这个函数尝试尝试根据列表提供的数字绘制出有意义的图形input_values=[1,2,3,4,5] squares=[1,4,9,16,25]
plt.plot(input_values,squares,linewidth=5)
- 使用scatter()绘制散点图
① 绘制单个点
② 绘制一系列点plt.scatter(2,4)
plt.scatter(x_values,y_values,4)
- 自动计算数据
遍历 x x x值,计算其平方值,并将结果存储到列表y_values中。一般这时需要设置坐标轴的取值范围,使用函数:y_values=[x**2 for x in x_values]
axis([<x轴最小值>,<x轴最大值>,<y轴最小值>],<y轴最大值>)
- 散点图操作
下面介绍一些对散点图进行修改的参数:
① 删除数据点的轮廓
edgecolor='none'
调用scatter()时传递该实参(默认为蓝色点和黑色轮廓,删除轮廓后为蓝色实心点)。
② 自定义颜色
c=<颜色名称>或c=<RGB颜色>如c='red'或c=(0,0,0.8)
在调用scatter()时传递该实参。包含0~1之间的小数值的元组,RGB中值越接近0,指定的颜色越深,值越接近1,指定的颜色越浅。
③ 使用颜色映射
颜色映射是一系列颜色,它们从起始颜色渐变到结束颜色。在可视化中,颜色映射用于突出数据的规律。
c=y_values, cmpa=plt.cm.Blues
其中参数c
设置成了一个y值列表,并使用参数cmap
告诉pyplot使用哪个颜色映射。这里代码将 y y y值小的点显示为浅蓝色,并将 y y y值较大的点显示为深蓝色。
④ 自动保存图表
其中,第一个参数指定要以什么样的文件名保存图表;第二个实参指定将图表多余的空白区域裁减掉。plt.savefig('squares_plot.png',bbox_inches='tight')
15.3 随机漫步
随机漫步是每次行走都完全随机,没有明确的方向,结果是由一系列随机决策决定的。随机漫步就是蚂蚁在晕头转向的情况下,每次都沿随机的方向前行所经过的路径。在自然界、物理学、生物学、化学和经济领域,随机漫步都有实际用途。例如,水滴中的分子运动是随机的,因此花粉在水面上的运动路径犹如随机漫步。
- 创建RandomWalk()类
随机地选择前进方向,这个类需要三个属性,其中一个是存储随机漫步次数的变量,其它两个是列表,分别存储随机漫步经过的每个点的 x x x和 y y y坐标。
这里为做出随机决策,用到了random模块里的choice()函数。 - 选择方向
用fill_Walk()来生成漫步包含的点,并决定每次漫步的方向。 - 绘制漫步地图
将随机漫步的所有点都绘制出来。 - 模拟多次随机漫步
在不多次运行程序的情况下使用前面的代码模拟多次随机漫步,一种方法是将这些代码放在一个while循环中。 - 设置随机漫步图的样式
设置样式的操作主要包括:
① 给点着色 plt.scatter(rw.x_values,rw.y_values,c=point_numbers,cmap=plt.cm.Blues,edgecolor=‘none’,s=15)
将参数c设置为point_numbers,指定使用颜色映射Blues,并传递实参edgecolor=none以删除每个点周围的轮廓。最终的随机漫步图从浅蓝色渐变为深蓝色
② 重新绘制起点和终点
plt.scatter(0,0,c=‘green’,edgecolor=‘none’,s=100)
plt.scatter(rw.x_values[-1],rw.y_values[-1],c=‘red’,edgecolor=‘none’,s=100)
在绘制随机漫步图后重新绘制起点和终点以呈现
③ 隐藏坐标轴
plt.axes().get_xaxis().set_visible(False)
plt.axes().get_yaxis().set_visible(False)
以免注意的是坐标轴而不是随机漫步路径
注:这个操作我在实现时总是报错…
④ 增加点数
rw=RandomWalk(50000)
plt.scatter(rw.x_values,rw.y_values,c=point_numbers,cmap=plt.cm.Blues,edgecolor=‘none’,s=1)
在创建实例时增多num_points的值,并在绘图时调整每个点的大小
⑤ 调整尺寸以适应屏幕
不清楚系统分辨率:plt.figure(figsize=(10,6))
知道系统分辨率:plt.figure(dpi=128,figsize=(10,6))
更有效地将数据中的规律呈现出来,函数figure()用于指定图表的宽度、高度、分辨率和背景色
15.4 使用Pygal模拟掷骰子
在本节,我们将使用Python可视化包Pygal来生成可缩放的矢量图形文件。在数学领域中,常常利用投骰子来解释各种数据分析。
chap16 下载数据
16.1 CSV文件
CSV文件:是将数据作为一系列以逗号分隔的值(CSV)写入文件。
CSV文件对人来说阅读起来比较麻烦,但程序可轻松地提取并处理其中的值,这有助于加快数据分析过程。
- 分析CSV文件头
注:文件头的格式并非总是一致的,空格和单位可能出现在奇怪的地方。这在数据文件中很常见,但不会带来问题,# 导入模块csv(csv模块包含在Python标准库中,可用于分析CSV文件中的数据行,让我们快速提取感兴趣的值 import csv filename = 'sitka_weather_07-2014.csv' # 打开文件,将结果文件对象存储在f中 with open(filename) as f: reader = csv.reader(f) # 创建一个与该文件向关联的阅读器(reader)对象。reader处理文件中以逗号分割的第一行数据,并将每项数据都作为一个元素存储在列表中 header_row = next(reader) # 内置函数next()返回文件的下一行 print(header_row)
🦆🦆即将更新
chap17 使用API
附:一些小知识
- 访问http://matplotlib.org/的示例画廊,可查看使用matplotlib制作的各种图表。单击画廊中的图表,可查看用于生成图表的代码。
- JSON(JavaScript Object Notation)格式最初是为了JavaScript开发的,但随后成了一种常见格式,被包括Python在内的众多语言采用。模块json能够将简单的Python数据结构转储到文件中,并在程序再次运行时加载该文件中的数据。
- 要了解pyplot中所有的颜色映射,请访问http://matplotlib.org/,单击Examples,向下滑动到Color Examples,再点击colormaps_reference。
- 要了解使用Pygal可创建什么样的图表,请查看图表类型画廊:访问http://www.pygal.org/,单击Documentation,再单击Chart types。