matplotlib.pyplot 热力图、等高线图、三维曲面图、线框图

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()

这里写图片描述

猜你喜欢

转载自blog.csdn.net/Yellow_python/article/details/80569949