200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > [Python系列-21]:Python之人工智能 - 基本工具 - 5- 绘制二元函数的三维曲线或散点图

[Python系列-21]:Python之人工智能 - 基本工具 - 5- 绘制二元函数的三维曲线或散点图

时间:2023-08-01 19:46:29

相关推荐

[Python系列-21]:Python之人工智能 - 基本工具 - 5- 绘制二元函数的三维曲线或散点图

作者主页(文火冰糖的硅基工坊):/HiWangWenB

本文网址:/HiWangWenBing/article/details/119859463

目录

第1章matplotlib原理与绘图的基本方式

1.1 Matplotlib构图的两种方式:

第2章 构建三维、曲线图形的基本步骤

2.1构建三维数据源

2.2构建画布figure对象的方法

2.3构建三维坐标系子图axes对象,并关联figure对象

2.4在三维坐标系中绘制特定数据的图形

第3章 绘制三维空间的曲线图的Python源代码示例

3.1源代码示例1:使用matplotlib库创建三维坐标系对象

3.2源代码示例2:使用专有3D库创建三维坐标系对象

第1章matplotlib原理与绘图的基本方式

1.1 Matplotlib构图的两种方式:

(1)隐式构图

当需要绘制一张简单的图形时,可以使用隐式构图,比如:

只包含一个默认的坐标系子图子图是默认的二维直角坐标系

详细请参考:[Python系列-9]:Python之人工智能 - 基本工具 -3- 函数可视化工具matplotlib原理与隐式绘图基本方法

/HiWangWenBing/article/details/119255863

(2)显式构图:

当需要构建一张复杂的图形的时候,就需要进行显式的方式进行构图,比如:

构建包含多张子图的图形。构建一个三维图形。

本文介绍的通过显式的方式构建三维图形。

第2章 构建三维、曲线图形的基本步骤

步骤1:构建三维数据源

步骤1:构建画布figure对象

步骤2:构建三维坐标系子图axes对象,并关联figure对象

步骤3:在三维坐标系中绘制特定数据的图形

2.1构建三维数据源

# 二元2次非线性函数

# y=f(x,y) = x^2 + xy + y^2 + 1

def f(x,y):

return(1.0*x**2 + x*y + 1.0*y**2 + 1)

# y = x^2 +xy + y2 + 1

xd = np.linspace(0,13,10) #x坐标轴数据序列

yd = np.linspace(0,13,10) #y坐标轴数据序列

zd = f(xd,yd) #z坐标轴数据序列

(xi,yi,zi)构成了三维空间点序列。

2.2构建画布figure对象的方法

fig=plt.figure()

2.3构建三维坐标系子图axes对象,并关联figure对象

(1)利用matplotlib自带的库构建

from matplotlib import pyplot as plt

fig=plt.figure()

ax1 = plt.axes(projection='3d') #创建三维坐标系对象,并自动关联到fig对象

通过plt.axes()函数创建三维坐标系axes的对象ax1.通过plt.axes()的参数projection='3d'指明是三维坐标系通过plt名称直接关联到默认的figure

(2)利用专用的3D库mpl_toolkits.mplot3d构建

from mpl_toolkits.mplot3d import Axes3D

fig=plt.figure()

ax2 = Axes3D(fig) #创建三维坐标系对象,并自动关联到fig对象。

通过Axes3D()函数创建三维坐标系axes的对象ax2通过Axes3D函数名,指明创建三维坐标系通过Axes3D函数名的参数fig,把坐标系关联到figure对象上

2.4在三维坐标系中绘制特定数据的图形

三维图形包括两大类:

(1)三维空间的曲线图:由三维空间中的点构成的图形

ax1.scatter3D(xd,yd,zd, cmap='Blues') #绘制散点图

ax1.plot3D(xd,yd,zd,'gray')#绘制曲线图

(2)三维空间的曲面图:由三维空间中的面构成的图形

参看:

第3章 绘制三维空间的曲线图的Python源代码示例

3.1源代码示例1:使用matplotlib库创建三维坐标系对象

#示例1:import numpy as np#%matplotlib inlineimport matplotlib.pyplot as pltz = np.linspace(0,13,1000)x = 5*np.sin(z)y = 5*np.cos(z)zd = 13*np.random.random(100)xd = 5*np.sin(zd)yd = 5*np.cos(zd)fig = plt.figure()ax1 = plt.axes(projection='3d') #使用matplotlib.pyplot创建坐标系ax1.scatter3D(xd,yd,zd, cmap='Blues') #绘制三维散点图ax1.plot3D(x,y,z,'gray')#绘制三维曲线图plt.show()

输出:

3.2源代码示例2:使用专有3D库创建三维坐标系对象

import numpy as np#%matplotlib inlinefrom mpl_toolkits.mplot3d import Axes3D# 二元2次非线性函数# y=f(x,y) = x^2 + xy + y^2 + 1def f(x,y):return(1.0*x**2 + x*y + 1.0*y**2 + 1) # y = x^2 +xy + y2 + 1xd = np.linspace(0,13,10)yd = np.linspace(0,13,10)zd = f(xd,yd)fig=plt.figure()ax2 = Axes3D(fig)ax2.scatter3D(xd,yd,zd, cmap='Blues') #绘制三维散点图ax2.plot3D(xd,yd,zd,'gray') #绘制三维曲线图

输出:

作者主页(文火冰糖的硅基工坊):/HiWangWenBing

本文网址:/HiWangWenBing/article/details/119859463

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。