首页 > 其他 > 详细

numpy.meshgrid的理解以及3D曲面图绘制

时间:2019-10-31 15:40:19      阅读:139      评论:0      收藏:0      [点我收藏+]

相关概念:

技术分享图片

 

 

 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向量和y向量

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和yv坐标矩阵

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()
axes3d.plot_surface

 

 

技术分享图片

 

numpy.meshgrid的理解以及3D曲面图绘制

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!