【机器学习】嘿马机器学习(科学计算库)第4篇:Matplotlib,3.3 常见图形绘制【附代码文档】

65 阅读1分钟

教程全知识点简介:1.机器学习常用科学计算库包括基础定位、目标。2. 人工智能概述涵盖人工智能应用场景、人工智能小案例、人工智能发展必备三要素、人工智能机器学习和深度学习。3. 机器学习概述包括机器学习工作流程、什么是机器学习、模型评估(回归模型评估、拟合)、Azure机器学习模型搭建、完整机器学习项目流程。4. 机器学习基础环境安装与使用包括Jupyter Notebook使用(一级标题、Jupyter Notebook中自动补全代码等相关功能拓展)。5. Matplotlib可视化涵盖Matplotlib HelloWorld(什么是Matplotlib、实现简单Matplotlib画图折线图、画出温度变化图、准备数据、创建画布、绘制折线图、显示图像、构造x轴刻度标签、修改坐标刻度显示、设置中文字体、设置正常显示符号、保存图片)、添加坐标轴刻度、添加网格显示、添加描述信息、图像保存、设置图形风格、常见图形绘制(常见图形种类意义、散点图绘制)。6. Numpy包括Numpy优势、N维数组ndarray(ndarray属性)、基本操作(生成数组方法、生成0和1数组、从现有数组生成、创建符合正态分布股票涨跌幅数据)、数组间运算(数组与数的运算)。7. Pandas数据结构包括Series、DataFrame。8. 文件读取与存储涵盖CSV(read_csv)、HDF(read_hdf与to_hdf)、JSON(read_josn)。9. 高级处理数据离散化包括为什么要离散化、什么是数据离散化、股票涨跌幅离散化(读取股票数据、将股票涨跌幅数据进行分组、股票涨跌幅分组数据变成one_hot编码)、案例实现。

👉👉👉   gitee.com/yinuo112/AI…

Matplotlib

学习目标

  • 应用Matplotlib的基本功能实现图形显示
  • 应用Matplotlib实现多图显示
  • 应用Matplotlib实现不同画图种类

3.3 常见图形绘制

学习目标

  • 目标

    • 掌握常见统计图及其意义

Matplotlib能够绘制折线图、散点图、柱状图、直方图、饼图。

我们需要知道不同的统计图的意义,以此来决定选择哪种统计图来呈现我们的数据。

1 常见图形种类及意义

  • 折线图:以折线的上升或下降来表示统计数量的增减变化的统计图

特点:能够显示数据的变化趋势,反映事物的变化情况。(变化)

api:plt.plot(x, y)

  • **散点图:**用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联或总结坐标点的分布模式。

特点:判断变量之间是否存在数量关联趋势,展示离群点(分布规律)

api:plt.scatter(x, y)

  • **柱状图:**排列在工作表的列或行中的数据可以绘制到柱状图中。

特点:绘制连离散的数据,能够一眼看出各个数据的大小,比较数据之间的差别。(统计/对比)

api:plt.bar(x, width, align='center', **kwargs)

Parameters:    
x : 需要传递的数据

width : 柱状图的宽度

align : 每个柱状图的位置对齐方式
    {‘center’, ‘edge’}, optional, default: ‘center’

**kwargs :
color:选择柱状图的颜色

  • **直方图:**由一系列高度不等的纵向条纹或线段表示数据分布的情况。 一般用横轴表示数据范围,纵轴表示分布情况。

特点:绘制连续性的数据展示一组或者多组数据的分布状况(统计)

api:matplotlib.pyplot.hist(x, bins=None)

Parameters:    
x : 需要传递的数据
bins : 组距

  • **饼图:**用于表示不同分类的占比情况,通过弧度大小来对比各种分类。

特点:分类数据的占比情况(占比)

api:plt.pie(x, labels=,autopct=,colors)

Parameters:  
x:数量,自动算百分比
labels:每部分名称
autopct:占比显示指定%1.2f%%
colors:每部分颜色

2 散点图绘制

需求:探究房屋面积和房屋价格的关系

房屋面积数据:

x = [225.98, 247.07, 253.14, 457.85, 241.58, 301.01,  20.67, 288.64,
       163.56, 120.06, 207.83, 342.75, 147.9 ,  53.06, 224.72,  29.51,
        21.61, 483.21, 245.25, 399.25, 343.35]

房屋价格数据:

y = [196.63, 203.88, 210.75, 372.74, 202.41, 247.61,  24.9 , 239.34,
       140.32, 104.15, 176.84, 288.23, 128.79,  49.64, 191.74,  33.1 ,
        30.74, 400.02, 205.35, 330.64, 283.45]

代码:

  
  
# 0.准备数据
  
  
x = [225.98, 247.07, 253.14, 457.85, 241.58, 301.01,  20.67, 288.64,
       163.56, 120.06, 207.83, 342.75, 147.9 ,  53.06, 224.72,  29.51,
        21.61, 483.21, 245.25, 399.25, 343.35]
y = [196.63, 203.88, 210.75, 372.74, 202.41, 247.61,  24.9 , 239.34,
       140.32, 104.15, 176.84, 288.23, 128.79,  49.64, 191.74,  33.1 ,
        30.74, 400.02, 205.35, 330.64, 283.45]

  
  
# 1.创建画布
  
  
plt.figure(figsize=(20, 8), dpi=100)

  
  
# 2.绘制散点图
  
  
plt.scatter(x, y)

  
  
# 3.显示图像
  
  
plt.show()

3 柱状图绘制

需求-对比每部电影的票房收入

电影数据如下图所示:

  • 准备数据
['雷神3:诸神黄昏','正义联盟','东方快车谋杀案','寻梦环游记','全球风暴', '降魔传','追捕','七十七天','密战','狂兽','其它']
[73853,57767,22354,15969,14839,8725,8716,8318,7916,6764,52222]
  • 绘制柱状图

代码:

  
  
# 0.准备数据
  
  
  
  
# 电影名字
  
  
movie_name = ['雷神3:诸神黄昏','正义联盟','东方快车谋杀案','寻梦环游记','全球风暴','降魔传','追捕','七十七天','密战','狂兽','其它']
  
  
# 横坐标
  
  
x = range(len(movie_name))
  
  
# 票房数据
  
  
y = [73853,57767,22354,15969,14839,8725,8716,8318,7916,6764,52222]

  
  
# 1.创建画布
  
  
plt.figure(figsize=(20, 8), dpi=100)

  
  
# 2.绘制柱状图
  
  
plt.bar(x, y, width=0.5, color=['b','r','g','y','c','m','y','k','c','g','b'])

  
  
# 2.1b修改x轴的刻度显示
  
  
plt.xticks(x, movie_name)

  
  
# 2.2 添加网格显示
  
  
plt.grid(linestyle="--", alpha=0.5)

  
  
# 2.3 添加标题
  
  
plt.title("电影票房收入对比")

  
  
# 3.显示图像
  
  
plt.show()

参考链接:

matplotlib.org/index.html

W3Schools Python

4 小结

  • 折线图【知道】

    • 能够显示数据的变化趋势,反映事物的变化情况。(变化)
    • plt.plot()
  • 散点图【知道】

    • 判断变量之间是否存在数量关联趋势,展示离群点(分布规律)
    • plt.scatter()
  • 柱状图【知道】

    • 绘制连离散的数据,能够一眼看出各个数据的大小,比较数据之间的差别。(统计/对比)
    • plt.bar(x, width, align="center")
  • 直方图【知道】

    • 绘制连续性的数据展示一组或者多组数据的分布状况(统计)
    • plt.hist(x, bins)
  • 饼图【知道】

    • 用于表示不同分类的占比情况,通过弧度大小来对比各种分类
    • plt.pie(x, labels, autopct, colors)

Matplotlib

学习目标

  • 应用Matplotlib的基本功能实现图形显示
  • 应用Matplotlib实现多图显示
  • 应用Matplotlib实现