前言:
这两个函数是在画梯度图中经常用到的,简单了解一下
参考:
python作图之plt.contour详解_你大佬来啦的博客-CSDN博客_plt.contour
目录:
- meshgrid
- contour 二维
- contour 三维
一 meshgrid
作用
创建网格点矩阵
输入:
x 向量 : 长度n
y 向量 : 长度m
输出:
X: x 复制m 行
Y: y 复制n 列
import numpy as np
def 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 plt
def 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**2
C = 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.html
def 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')