Day 17 数据可视化
- 安装matplotlib
- OS X安装matplotlib
$ pip install --user matplotlib
- Windows安装matplotlib
课程中说,在Windows系统中安装matplotlib需要先安装Visual Studio,通过访问https://dev.windows.com,单击Downloads,再查找Visual Studio Community下载并安装即可。我认为下载Visual Studio Community的目的是下载对应的Visual Studio Runtime lib,Windows 10因该都内置安装完毕了,所以就没做这一个步骤而直接下载matplotlib了。
安装Visual Studio后,访问https://pypi.python.org/pypi/matplotlib/,选择下载,下载对应版本的whl文件并安装,如果不确认python版本,在命令行中运行下面的命令可查看python版本。
python --version
下载完成后,在命令行中运行下面的代码(我的python版本是3.7,windows系统是64位的)python -m pip install --user matplotlib-3.0.2-cp37-cp37m-win_amd64.whl
- 安装matplotlib后,在终端或命令行运行下面的代码测试安装环境
如果没有任何错误反馈,表明matplotlib安装成功。$ python \>>> import matplotlib \>>>
- 绘制简单的折线图
- pyplot包
import matplotlib.pyplot as plt
- 绘制简单的散点图
- 自动计算数据
- 使用渐进色绘制散点图
- 自动保存图表
- 随机漫步:每次行走都完全是随机的,没有明确的方向,结果是由一系列随机决策决定的。
- choice()函数
choice() 方法返回一个列表,元组或字符串的随机项。
下面代码中的seq可以是列表、元组或字符串
import random random.choice( seq )
- choice()函数
- 安装使用Pygal包模拟掷骰子
- pygal是一个SVG图表库。SVG是一种矢量图格式。全称Scalable Vector Graphics,pygal用来生成可缩放的矢量图形文件。
- 安装Pygal
- OS X
$ pip install --user pygal
- Windows
python -m pip install --user pygal
- 掷骰子
- 定义一个骰子类(用到了random库中的randint)
from random import randint class Die(): """表示一个骰子的类""" def __init__(self, num_sides=6): """默认骰子有6面""" self.num_sides = num_sides def roll(self): """返回一个位于1和骰子面数之间的随机值""" return randint(1, self.num_sides)
- 掷骰子并可视化数据
from die import Die import pygal #创建一个D6 die_1 = Die() #掷几次骰子,并将结果存储在一个列表中 results= [] for roll_num in range(50000): result = die_1.roll() results.append(result) #分析结果 frequencies= [] x_label_title = [] max_result = die_1.num_sides for value in range(1 , max_result + 1): frequency = results.count(value) frequencies.append(frequency) #自动产生x轴坐标标签 x_label_title.append(str(value)) #对结果进行可视化 hist = pygal.Bar() hist.title = "Results of rolling one D6 50,000 times" hist.x_labels = x_label_title hist.x_title = 'Result' hist.y_title = "Frequency of Result" hist.add('D6', frequencies) hist.render_to_file('die_visual.svg')
- 运行结果