python人工智能教程——Matplotlib入门

关于Matplotlib

Matplotlib是python中开源的用于绘图的工具包,具有强大的数据可视化功能。

二维图像绘制

显示连续二维图像:

# 导入numpy和matplotlib包
# pyplot是matplotlib里的子模块,常用于画图
import numpy as np
import matplotlib.pyplot as plt


# 建立坐标系
fig = plt.figure()

# 生成-1010间隔为0.1的等差数组
# 通过cos函数生成对应的y数组
x = np.arange(-10, 10, 0.1)
y = np.cos(x)

# 设置图像标题和x轴y轴的名字
plt.title('demo1')
plt.xlabel('X')
plt.ylabel('Y')

# 传入参数,画图
plt.plot(x, y)

# 显示出来
plt.show()

输出:
python人工智能教程——Matplotlib入门_第1张图片
注:
如果不写plt.show()是显示不出来图像的。

显示离散二维图像:

# 导入numpy和matplotlib包
# pyplot是matplotlib里的子模块,常用于画图
import numpy as np
import matplotlib.pyplot as plt


# 建立坐标系
fig = plt.figure()

# 生成-1010间隔为0.1的等差数组
# 通过cos函数生成对应的y数组
x = np.arange(-10, 10, 0.5)
y = np.cos(x)

# 设置图像标题和x轴y轴的名字
plt.title('demo2')
plt.xlabel('X')
plt.ylabel('Y')

# 传入参数,画图
# *表示用*画出来
# c表示是青色
plt.plot(x, y, '*c')

# 显示出来
plt.show()

输出:
python人工智能教程——Matplotlib入门_第2张图片
注:
这里在plot时加入了新的参数,该参数用于表示我们用什么样的形式去画图。以下图表是其中一些字符的含义。还有很多字符有含义,如果大家感兴趣可以csdn一下。

字符 含义
- 实线
短横线
-. 点划线
: 虚线
.
, 像素
* 星型
o
b
g 绿
r
c
m 品红
y
k
w

显示图片

# 导入matplotlib包
# pyplot是matplotlib里的子模块,常用于画图
import matplotlib.pyplot as plt


# 读取图片,放入自己图片的名字
img = plt.imread('./test.png')

# 显示图片
plt.imshow(img)

# 显示出来
plt.show()

输出:
python人工智能教程——Matplotlib入门_第3张图片

三维图像绘制

生成三维坐标系:

# 导入numpy和matplotlib包
# pyplot是matplotlib里的子模块,常用于画图
import numpy as np
import matplotlib.pyplot as plt

# 建立坐标系
fig = plt.figure()

# 设置图像的轴为3d
ax = plt.axes(projection='3d')

# 显示出来
plt.show()

输出:
python人工智能教程——Matplotlib入门_第4张图片
三维图像绘制示例

# 导入numpy和matplotlib包
# pyplot是matplotlib里的子模块,常用于画图
import numpy as np
import matplotlib.pyplot as plt

# 建立坐标系
fig = plt.figure()

# 设置图像的轴为3d
ax = plt.axes(projection='3d')

x = np.arange(-5, 5, 0.1)
y = np.arange(-5, 5, 0.1)

# 将x,y变为形状一样的二维数组
x, y = np.meshgrid(x, y)

# np.exp(a)是e的a次方的意思
# x ** 2 表示x的平方
z = np.exp(100 - x ** 2 - y ** 2)

# 绘制图像, camp表示图形样式
ax.plot_surface(x, y, z, cmap='rainbow')

# 显示出来
plt.show()

输出:
python人工智能教程——Matplotlib入门_第5张图片
注:
这里x,y,z都是二维数组。
如果大家搞不明白np.meshgrid(x, y),以下示例可以方便大家理解。

x = np.arange(-5, 5, 0.1)
y = np.arange(-5, 5, 0.1)

# 将x,y变为形状一样的二维数组
x, y = np.meshgrid(x, y)

print('x:\n', x)
print('y:\n', y)

输出:

x:
 [[-5.  -4.9 -4.8 ...  4.7  4.8  4.9]
 [-5.  -4.9 -4.8 ...  4.7  4.8  4.9]
 [-5.  -4.9 -4.8 ...  4.7  4.8  4.9]
 ...
 [-5.  -4.9 -4.8 ...  4.7  4.8  4.9]
 [-5.  -4.9 -4.8 ...  4.7  4.8  4.9]
 [-5.  -4.9 -4.8 ...  4.7  4.8  4.9]]
y:
 [[-5.  -5.  -5.  ... -5.  -5.  -5. ]
 [-4.9 -4.9 -4.9 ... -4.9 -4.9 -4.9]
 [-4.8 -4.8 -4.8 ... -4.8 -4.8 -4.8]
 ...
 [ 4.7  4.7  4.7 ...  4.7  4.7  4.7]
 [ 4.8  4.8  4.8 ...  4.8  4.8  4.8]
 [ 4.9  4.9  4.9 ...  4.9  4.9  4.9]]

三维离散图像绘制示例

# 导入numpy和matplotlib包
# pyplot是matplotlib里的子模块,常用于画图
import numpy as np
import matplotlib.pyplot as plt

# 建立坐标系
fig = plt.figure()

# 设置图像的轴为3d
ax = plt.axes(projection='3d')

# 产生1000~1的随机数,然后乘以20
z = 20 * np.random.random(100)

# 由z生成x,y
x = np.sin(z)
y = np.cos(z)

# 绘制散点图
ax.scatter3D(x, y, z)

# 显示出来
plt.show()

输出:
python人工智能教程——Matplotlib入门_第6张图片
注:
这里x,y,z都是一维数组。
python人工智能教程——Matplotlib入门_第7张图片

你可能感兴趣的:(matplotlib,python,人工智能)