0、创建数据
import numpy as np
import matplotlib.pyplot as mp
a = np.linspace(-3, 3, 999)
x, y = np.meshgrid(a, a)
z = (1 - x / 2 + x ** 5 + y ** 3) * np.exp(-x ** 2 - y ** 2)
1、热力图
mp.imshow(
深度坐标,
cmap=颜色映射,
origin=垂直轴向
)
imshow
# 创建图形窗口(主标题)
mp.figure(num='Hot', facecolor='lightgray')
# 设置标题(子标题)
mp.title('Hot', fontsize=20)
# 设置水平和垂直坐标轴上标签的文本和字号
mp.xlabel('x', fontsize=14)
mp.ylabel('y', fontsize=14)
# 设置坐标轴刻度标签字号
mp.tick_params(labelsize=10)
# 设置网格线线型
mp.grid(linestyle=':')
# 绘制曲线
mp.imshow(z, origin='low', cmap='jet')
# 颜色条(右边)
mp.colorbar()
# 展示
mp.show()
2、等高线图
绘制等高线
mp.contour(
x, y,
z=高度,
colors=颜色,
linewidths=线宽)
填充颜色
mp.contourf(
x, y, z,
密度,
cmap=颜色映射)
线标签
mp.clabel(
cntr对象,
inline_spacing,
fmt,
fontsize)
contour
# 图形窗口
mp.figure('Contour', facecolor='lightgray')
mp.title('Contour', fontsize=20)
mp.xlabel('x', fontsize=14)
mp.ylabel('y', fontsize=14)
mp.grid(linestyle=':')
# 填充颜色
mp.contourf(x, y, z, 8, cmap='jet')
# 绘制等高线
cntr = mp.contour(x, y, z, 8, colors='black', linewidths=0.5)
# 显示各等高线的数据标签
mp.clabel(cntr, inline_spacing=1, fmt='%.1f', fontsize=8)
# 展示
mp.show()
3、三维曲面/线框图
ax.plot_surface(
x, y, z,
rstride=垂直步长,
cstride=水平步长,
cmap=颜色映射)
ax.plot_wireframe(
x, y, z,
rstride=垂直步长,
cstride=水平步长, color=颜色,
linewidth=线宽)
plot_surface
# 创建窗口对象
mp.figure('3D Surface')
# 获取三维坐标轴
ax = mp.gca(projection='3d')
# 标题
mp.title('3D Surface', fontsize=20)
# x,y,z 轴标签
ax.set_xlabel('x', fontsize=14)
ax.set_ylabel('y', fontsize=14)
ax.set_zlabel('z', fontsize=14)
# 绘图
ax.plot_surface(x, y, z, rstride=10, cstride=10, cmap='jet')
# 展示
mp.show()
plot_wireframe
mp.figure('3D Wireframe')
ax = mp.gca(projection='3d')
mp.title('3D Wireframe', fontsize=20)
ax.set_xlabel('x', fontsize=14)
ax.set_ylabel('y', fontsize=14)
ax.set_zlabel('z', fontsize=14)
ax.plot_wireframe(x, y, z, rstride=20, cstride=20, linewidth=0.5, color='orangered')
mp.show()