[Python系列-9]:Python之人工智能 - 基本工具 -3- 函数可视化工具matplotlib

Posted 文火冰糖的硅基工坊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Python系列-9]:Python之人工智能 - 基本工具 -3- 函数可视化工具matplotlib相关的知识,希望对你有一定的参考价值。

作者主页(文火冰糖的硅基工坊):https://blog.csdn.net/HiWangWenBing

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/119255863


目录

第1章 函数可视化工具matplotlib

第2章 matplotlib简介

2.1 简介

2.2 库名

2.3 主页

第3章 matplotlib的使用

3.1 画单张实线图:plot()

3.2 画单张散点图:scatter()

3.3 画单张柱状图/条形图:bar()

第4章 同时画多张图:subplot()

4.1 subplot()功能概述

4.2 画图案例


第1章 函数可视化工具matplotlib

在深度学习模型中,经常需要通过图形化的方式展现输出变量与输出变量之间的可视化关系。

matplotlib画图工具,是一个非常不错的选择。

第2章 matplotlib简介

2.1 简介

Matplotlib 是 Python 的绘图库

它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案,用于可视化NumPy生成的各种数据序列。

它也可以和图形工具包一起使用,如 PyQt 和 wxPython。

2.2 库名

import numpy as np          
import matplotlib.pyplot as plt

2.3 主页

https://www.runoob.com/numpy/numpy-matplotlib.html

第3章 matplotlib的使用

3.1 画单张实线图:plot()

实例1:

import numpy as np 
from matplotlib import pyplot as plt 
 
x = np.arange(1,11)           #生成1-11的整数值序列
y =  2  * x +  5              #根据x序列,生成y序列

plt.title("Matplotlib demo")  #设置图y轴的title
plt.xlabel("x axis caption")  #设置图y轴的label
plt.ylabel("y axis caption")  #设置图y轴的label
plt.plot(x,y)                 #用(x,y)序列构建图 
plt.show()                    #显示图

以上实例中,

np.arange() 函数创建 x 轴上的值。

y 轴上的对应值存储在另一个数组对象 y 中。

这些值使用 matplotlib 软件包的 pyplot 子模块的 plot() 函数绘制。

图形由 show() 函数显示。

实例2:

import numpy as np 
import matplotlib.pyplot as plt 

# 计算正弦曲线上点的 x 和 y 坐标
x = np.arange(0,  3  * np.pi,  0.1) 
y = np.sin(x)          #正弦关系

plt.title("sine wave form")  

plt.plot(x, y) # 使用 matplotlib 来绘制点,构图
plt.show()     # 显示图,画图

执行输出结果如下图:

3.2 画单张散点图:scatter()

实例3:

import numpy as np 
from matplotlib import pyplot as plt 
 
x = np.arange(1,11)           #生成1-11的整数值序列
y =  2  * x +  5              #根据x序列,生成y序列

plt.title("Matplotlib demo")  #设置图y轴的title
plt.xlabel("x axis caption")  #设置图y轴的label
plt.ylabel("y axis caption")  #设置图y轴的label

plt.scatter(x,y)              #用(x,y)序列构建散点图
plt.show()                    #显示图

3.3 画单张柱状图/条形图:bar()

pyplot 子模块提供 bar() 函数来生成条形图。

以下实例生成两组 x 和 y 数组的条形图。

from matplotlib import pyplot as plt 
x1 =  [5,8,10] 
y1 =  [12,16,6] 

x2 =  [6,9,11] 
y2 =  [6,15,7] 

plt.bar(x1, y1, align =  'center')                #在主画布上构建图1
plt.bar(x2, y2, color =  'g', align =  'center')  #在主画布上构建图2

plt.title('Bar graph') 
plt.ylabel('Y axis') 
plt.xlabel('X axis') 

plt.show()

结果:

第4章 同时画多张子图:subplot()

4.1 subplot()功能概述

(1)作用:

subplot() 函数允许在同一个画布中绘制不同的图形。

要在一个画布中绘制多个子图subplot,就需要对整个画布进行区间切分。

备注:

subplot同一个画布上绘制多个子图,而不是在一个子图中绘制多个图形。

  • 一个画布上绘制多个子图

  • 一个子图中绘制多个图形

(2)切分规则

按照行和列的方式,把整个画布切分成n*m个区域,每个区域同一个代号表示,如下图所:

备注:

  • 切分规则把“整个画布”切分成n*m个矩阵区域
  • 每个子图,对整个画布的切分规则可以不相同。如某个子图按照2*3的方式切分整个“画布”,另一个子图按照3*1的方式切分整个画布。

(3)子图标识号

  • 每个子图,需要制定切分画布的规则,同时还需要指明子图,在该切分规则下,处于矩阵中的位置。也就是子图的位置号。
  • 位置号从1开始,从左向右,从上之下进行编号。

(4)函数 原型:subplot(numbRow , numbCol ,plotNum )

  • numbRow:指明画布被切分为多少行
  • numbCol :指明画布被切分为多少列
  • plotNum :指明子图在切分后的空间中的位置。

4.2 画图案例

import numpy as np 
import matplotlib.pyplot as plt 

# 计算正弦和余弦曲线上的点的 x 和 y 坐标 
x = np.arange(0,  3  * np.pi,  0.1) 
y_sin = np.sin(x) 


# 把画布切分2*3的网格,切换第1个网格
plt.subplot(2,  3,  1)  
# 在网格1中构建子图
plt.plot(x, y_sin) 
plt.title('1')  

# 把画布切分2*3的网格,切换第2个网格
plt.subplot(2,  3,  2)  
# 在网格2中构建子图
plt.plot(x, y_sin) 
plt.title('2')  

# 把画布切分2*3的网格,切换第3个网格
plt.subplot(2,  3,  3)  
# 在网格2中构建子图
plt.plot(x, y_sin) 
plt.title('3')  


# 把画布切分2*1的网格,切换第2个网格
plt.subplot(2,  1,  2)  
# 在网格2中构建子图
plt.plot(x, y_sin) 
plt.title('4')  

# 展示图像
plt.show()


 作者主页(文火冰糖的硅基工坊):https://blog.csdn.net/HiWangWenBing

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/119255863

以上是关于[Python系列-9]:Python之人工智能 - 基本工具 -3- 函数可视化工具matplotlib的主要内容,如果未能解决你的问题,请参考以下文章

[Python系列-7]:Python之人工智能 - 基本工具 -1- Time库

[Python系列-8]:Python之人工智能 - 基本工具 -2- 随机数生成库

[Python系列-6]:Python之人工智能 - 基本语法-3-程序循环控制语句:for...in,while

[Python系列-22]:Python之人工智能 - 基本工具 - 6- 绘制二元函数的三维曲面图

[Python系列-10]:Python之人工智能 - 基本工具 -4- 数组与矩阵数学工具Numpy

[Python系列-5]:Python之人工智能 - 基本语法-2- 类复合数据类型容器(列表集合元组字典)