前言:
这两个函数是在画梯度图中经常用到的,简单了解一下
参考:
python作图之plt.contour详解_你大佬来啦的博客-CSDN博客_plt.contour
目录:
- meshgrid
- contour 二维
- contour 三维
一 meshgrid
作用
创建网格点矩阵
输入:
x 向量 : 长度n
y 向量 : 长度m
输出:
X: x 复制m 行
Y: y 复制n 列
import numpy as npdef meshgrid():x = np.linspace(-2, 2,3)y = np.linspace(-5, 5,5)print("\n x ",x)print("\n y ",y)X,Y = np.meshgrid(x,y)print("\n X ",X)
二 contour 二维
作用:
绘制等高线
plt.contour(x, y, Z, [levels], **kwargs)
输入参数:
X, Y表示的是坐标位置
Z: 代表每个坐标对应的高度值,是一个二维数组
levels有两种传入形式:
A 一种是传入一个整数,这个整数表示你想绘制的等高线的条数
B 一种方式就是传入一个包含高度值的一维数组,这样python便会画出传入的高度值对应的等高线。
import numpy as np
import matplotlib.pyplot as pltdef meshgrid():x = np.linspace(-3, 3,50)y = np.linspace(-3, 3,50)#print("\n x \n",x)#print("\n y \n",y)X,Y = np.meshgrid(x,y)#print("\n X \n",X)#print("\n X \n",X)Z = X**2+Y**2C = plt.contour(x,y,Z,5) #第一种方法plt.clabel(C, inline=True, fontsize=15)meshgrid()
level 也可以指定高度 C = plt.contour(x,y,Z,[1,2,5,8])
三 3D contour
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
#https://www.cnblogs.com/yunshangyue71/p/13584375.htmldef meshgrid3D():x = np.linspace(-3, 3, 50)y = np.linspace(-3, 3, 50)X, Y = np.meshgrid(x, y)Z = X**2 + Y**2 fig = plt.figure(figsize=(10,10))ax1 = plt.axes(projection='3d')ax1.scatter3D(X,Y,Z, c='#00FA9A')