赞
踩
Matplotlib是python中开源的用于绘图的工具包,具有强大的数据可视化功能。
显示连续二维图像:
# 导入numpy和matplotlib包 # pyplot是matplotlib里的子模块,常用于画图 import numpy as np import matplotlib.pyplot as plt # 建立坐标系 fig = plt.figure() # 生成-10到10间隔为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()
输出:
注:
如果不写plt.show()是显示不出来图像的。
显示离散二维图像:
# 导入numpy和matplotlib包 # pyplot是matplotlib里的子模块,常用于画图 import numpy as np import matplotlib.pyplot as plt # 建立坐标系 fig = plt.figure() # 生成-10到10间隔为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()
输出:
注:
这里在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()
输出:
生成三维坐标系:
# 导入numpy和matplotlib包
# pyplot是matplotlib里的子模块,常用于画图
import numpy as np
import matplotlib.pyplot as plt
# 建立坐标系
fig = plt.figure()
# 设置图像的轴为3d
ax = plt.axes(projection='3d')
# 显示出来
plt.show()
输出:
三维图像绘制示例
# 导入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()
输出:
注:
这里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') # 产生100个0~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()
输出:
注:
这里x,y,z都是一维数组。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。