自习室 | 《Python编程——从入门到实践》(项目2 数据可视化)

目录

  • chap15 生成数据
    • 15.2 绘制简单的折线图
    • 15.3 随机漫步
    • 15.4 使用Pygal模拟掷骰子
  • chap16 下载数据
    • 16.1 CSV文件
  • 即将更新
  • chap17 使用API
  • 附:一些小知识

答案: 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()

学会了如何绘制图形,我们还需要做一系列的后续操作。

  1. 图形更容易阅读
    下面介绍一些对图形的基本操作:
    操作 代码
    改线条粗细 plt.plot(<列表名>, linewidth=<粗细值>)
    置图表标题 plt.title(<标题名>, fontsize=<字号>)
    修改标签文字 plt.xlable/ylable(<标签名>, fontsize=<字号>)
    修改线条粗细 plt.tick_params(axis=‘both’, lablesize=<字号>)
  2. 正确绘制图形
    当你向plot()提供一系列数字时,它假设第一个数据点对应的 x x x坐标值为0,但我们提供的序列的第一个点对应的 x x x值为1。为改变这种默认行为,可以给plot()同时提供输入值和输出值,即对应的步骤变为:
    Step2:提供输入值和输出值
    input_values=[1,2,3,4,5]
    squares=[1,4,9,16,25]
    
    Step3:将列表传递给函数plot(),这个函数尝试尝试根据列表提供的数字绘制出有意义的图形
    plt.plot(input_values,squares,linewidth=5)
    
  3. 使用scatter()绘制散点图
    ① 绘制单个点
    plt.scatter(2,4)
    
    ② 绘制一系列点
    plt.scatter(x_values,y_values,4)
    
  4. 自动计算数据
    y_values=[x**2 for x in x_values]
    
    遍历 x x x值,计算其平方值,并将结果存储到列表y_values中。一般这时需要设置坐标轴的取值范围,使用函数:
    axis([<x轴最小值>,<x轴最大值><y轴最小值>],<y轴最大值>)
    
  5. 散点图操作
    下面介绍一些对散点图进行修改的参数:
    ① 删除数据点的轮廓
    edgecolor='none'
    调用scatter()时传递该实参(默认为蓝色点和黑色轮廓,删除轮廓后为蓝色实心点)。
    ② 自定义颜色
    c=<颜色名称>或c=如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 随机漫步

随机漫步是每次行走都完全随机,没有明确的方向,结果是由一系列随机决策决定的。随机漫步就是蚂蚁在晕头转向的情况下,每次都沿随机的方向前行所经过的路径。在自然界、物理学、生物学、化学和经济领域,随机漫步都有实际用途。例如,水滴中的分子运动是随机的,因此花粉在水面上的运动路径犹如随机漫步。

  1. 创建RandomWalk()类
    随机地选择前进方向,这个类需要三个属性,其中一个是存储随机漫步次数的变量,其它两个是列表,分别存储随机漫步经过的每个点的 x x x y y y坐标。
    这里为做出随机决策,用到了random模块里的choice()函数。
  2. 选择方向
    用fill_Walk()来生成漫步包含的点,并决定每次漫步的方向。
  3. 绘制漫步地图
    将随机漫步的所有点都绘制出来。
  4. 模拟多次随机漫步
    在不多次运行程序的情况下使用前面的代码模拟多次随机漫步,一种方法是将这些代码放在一个while循环中。
  5. 设置随机漫步图的样式
    设置样式的操作主要包括:
    ① 给点着色 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文件对人来说阅读起来比较麻烦,但程序可轻松地提取并处理其中的值,这有助于加快数据分析过程。

  1. 分析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


附:一些小知识

  1. 访问http://matplotlib.org/的示例画廊,可查看使用matplotlib制作的各种图表。单击画廊中的图表,可查看用于生成图表的代码。
  2. JSON(JavaScript Object Notation)格式最初是为了JavaScript开发的,但随后成了一种常见格式,被包括Python在内的众多语言采用。模块json能够将简单的Python数据结构转储到文件中,并在程序再次运行时加载该文件中的数据。
  3. 要了解pyplot中所有的颜色映射,请访问http://matplotlib.org/,单击Examples,向下滑动到Color Examples,再点击colormaps_reference。
  4. 要了解使用Pygal可创建什么样的图表,请查看图表类型画廊:访问http://www.pygal.org/,单击Documentation,再单击Chart types。

你可能感兴趣的:(#,Python,编程类,python,数据可视化)