python学习笔记 Day 17 数据可视化

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后,在终端或命令行运行下面的代码测试安装环境
      $ python
      \>>> import matplotlib
      \>>>
      
      如果没有任何错误反馈,表明matplotlib安装成功。
  • 绘制简单的折线图
    • pyplot包
    import matplotlib.pyplot as plt 
    
    • 绘制简单的散点图
    • 自动计算数据
    • 使用渐进色绘制散点图
    • 自动保存图表
  • 随机漫步:每次行走都完全是随机的,没有明确的方向,结果是由一系列随机决策决定的。
    • choice()函数
      choice() 方法返回一个列表,元组或字符串的随机项。
      下面代码中的seq可以是列表、元组或字符串
    import random
    random.choice( seq  )
    
  • 安装使用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')
      
      • 运行结果
        D6 50000次结果

猜你喜欢

转载自blog.csdn.net/steventian72/article/details/85055431