相关概念:

1.x向量和y向量
import numpy as np import matplotlib.pyplot as plt x = np.array([[0,1,2,3], [0,0,0,0], [0,0,0,0], [0,0,0,0]]) y = np.array([[0,0,0,0], [1,0,0,0], [2,0,0,0], [3,0,0,0]]) plt.plot(x,y, color = ‘red‘, ##全部点设置红色 marker=‘o‘, ##形状:实心圆圈 linestyle = ‘‘) ##线性:空 点与点间不连线 plt.grid(True) ##显示网格 plt.show()
x向量:[0, 1, 2, 3]
y向量:[0, 1, 2, 3]

2.xv和yv矩阵
import numpy as np import matplotlib.pyplot as plt x = [0,1,2,3] y = [0,1,2,3] print(x) print(y) x,y = np.meshgrid(x,y) print(x) print(y) plt.plot(x,y, color = ‘red‘, ##全部点设置红色 marker=‘o‘, ##形状:实心圆圈 linestyle = ‘‘) ##线性:空 点与点间不连线 plt.grid(True) ##显示网格 plt.show()
xv坐标矩阵:
[[0 1 2 3]
[0 1 2 3]
[0 1 2 3]
[0 1 2 3]]

yv坐标矩阵:
[[0 0 0 0]
[1 1 1 1]
[2 2 2 2]
[3 3 3 3]]

z:网格平面坐标


图片来源:https://www.cnblogs.com/lantingg/p/9082333.html
import numpy as np import matplotlib.pyplot as plt #调用meshgrid实现以上功能 x = np.linspace(0,100,11) y = np.linspace(0,50,11) print(x) print(y) x,y = np.meshgrid(x,y) print(‘x--meshgrid后的数据‘,x) print(‘y--meshgrid后的数据‘,y) plt.plot(x,y, color = ‘red‘, ##全部点设置红色 marker=‘o‘, ##形状:实心圆圈 linestyle = ‘‘) ##线性:空 点与点间不连线 plt.grid(True) ##显示网格 plt.show() ‘‘‘ x = [ 0. 10. 20. 30. 40. 50. 60. 70. 80. 90. 100.] y = [ 0. 5. 10. 15. 20. 25. 30. 35. 40. 45. 50.] x--meshgrid后的数据 [将x一维数组,重复11次] [[ 0. 10. 20. 30. 40. 50. 60. 70. 80. 90. 100.] [ 0. 10. 20. 30. 40. 50. 60. 70. 80. 90. 100.] [ 0. 10. 20. 30. 40. 50. 60. 70. 80. 90. 100.] [ 0. 10. 20. 30. 40. 50. 60. 70. 80. 90. 100.] [ 0. 10. 20. 30. 40. 50. 60. 70. 80. 90. 100.] [ 0. 10. 20. 30. 40. 50. 60. 70. 80. 90. 100.] [ 0. 10. 20. 30. 40. 50. 60. 70. 80. 90. 100.] [ 0. 10. 20. 30. 40. 50. 60. 70. 80. 90. 100.] [ 0. 10. 20. 30. 40. 50. 60. 70. 80. 90. 100.] [ 0. 10. 20. 30. 40. 50. 60. 70. 80. 90. 100.] [ 0. 10. 20. 30. 40. 50. 60. 70. 80. 90. 100.]] y--meshgrid后的数据 [将y一位数组转置成列,再重复11次] [[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.] [ 5. 5. 5. 5. 5. 5. 5. 5. 5. 5. 5.] [10. 10. 10. 10. 10. 10. 10. 10. 10. 10. 10.] [15. 15. 15. 15. 15. 15. 15. 15. 15. 15. 15.] [20. 20. 20. 20. 20. 20. 20. 20. 20. 20. 20.] [25. 25. 25. 25. 25. 25. 25. 25. 25. 25. 25.] [30. 30. 30. 30. 30. 30. 30. 30. 30. 30. 30.] [35. 35. 35. 35. 35. 35. 35. 35. 35. 35. 35.] [40. 40. 40. 40. 40. 40. 40. 40. 40. 40. 40.] [45. 45. 45. 45. 45. 45. 45. 45. 45. 45. 45.] [50. 50. 50. 50. 50. 50. 50. 50. 50. 50. 50.]] ‘‘‘

import numpy as np from matplotlib import pyplot as plt from mpl_toolkits.mplot3d import Axes3D def plot_3d(): fig = plt.figure(figsize=(12,8)) ax = Axes3D(fig) x = np.arange(-2,2,0.05) y = np.arange(-2,2,0.05) ##对x,y数据执行网格化 x,y = np.meshgrid(x,y) z1 = np.exp(-x**2-y**2) z2 = np.exp(-(x-1)**2-(y-1)**2) z = -(z1-z2)*2 ax.plot_surface(x,y,z, ##x,y,z二维矩阵(坐标矩阵xv,yv,zv) rstride=1,##retride(row)指定行的跨度 cstride=1,##retride(column)指定列的跨度 cmap=‘rainbow‘) ##设置颜色映射 ##设置z轴范围 ax.set_zlim(-2,2) ##设置标题 plt.title(‘优化设计之梯度下降--目标函数‘,fontproperties = ‘SimHei‘,fontsize = 20) plt.show() ax.plot_surface() plot_3d()

原文:https://www.cnblogs.com/liuhuacai/p/11771350.html