IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> [Python系列-22]:Python之人工智能 - 基本工具 - 6- 绘制二元函数的三维曲面图 -> 正文阅读

[Python知识库][Python系列-22]:Python之人工智能 - 基本工具 - 6- 绘制二元函数的三维曲面图

作者主页(文火冰糖的硅基工坊):https://blog.csdn.net/HiWangWenB

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/119859493


目录

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

1.1 Matplotlib构图的两种方式:

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

2.1?构建三维数据源

2.2?构建画布figure对象的方法

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

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

第3章 Python源代码示例

3.1 源代码示例1:二维线性数据示意图

3.2 源代码示例2:三维网格数据示意图

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

3.4?源代码示例4:



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

1.1 Matplotlib构图的两种方式:

(1)隐式构图

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

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

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

https://blog.csdn.net/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
x?= np.linspace(0,13,10)? ? ? #x坐标轴数据序列
y?= np.linspace(0,13,10)? ? ? #y坐标轴数据序列

xd,yd = np.meshgrid(x,y) ? ? ?#空间的点序列转换成网格点,这是关键!!!

zd = f(xd,yd)? ? ? ? ? ? ? ? ? ? ? ? ? #生成z轴的网格数据

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)三维空间的曲线图:由三维空间中的点构成的图形

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

https://mp.csdn.net/mp_blog/creation/editor/119859463

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

ax1.plot_surface?(xd,yd,zd,rstride=1,cstride=1,cmap='rainbow')

第3章 Python源代码示例

3.1 源代码示例1:二维线性数据示意图

# 二维线性数据图示
from matplotlib import pyplot as plt
import numpy as np

x = np.arange(-10, 10, 2)
y = np.arange(-10, 10, 2)    #X,Y的范围

figure = plt.figure()

plt.plot(x,y)

输出:

3.2 源代码示例2:三维网格数据示意图

from matplotlib import pyplot as plt
import numpy as np

# 二元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) 

x = np.arange(-10, 10, 2)
y = np.arange(-10, 10, 2)    #X,Y的范围

xd,yd = np.meshgrid(x,y)      #空间的点序列转换成网格点

figure = plt.figure()

plt.plot(xd,yd)

输出 :

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

# 绘制曲面图
from matplotlib import pyplot as plt
import numpy as np

# 二元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) 

x = np.arange(-10, 10, 2)
y = np.arange(-10, 10, 2)    #X,Y的范围

xd,yd = np.meshgrid(x,y)      #空间的点序列转换成网格点

zd = f(xd,yd)                 #生成z轴的网格数据

figure = plt.figure()
ax1 = plt.axes(projection='3d')             #创建三维坐标系

ax1.plot_surface(xd,yd,zd,rstride=1,cstride=1,cmap='rainbow')

#plt.show()#展示图片

输出:

??

3.4?源代码示例4:

# 绘制曲面图
from matplotlib import pyplot as plt
import numpy as np

xd = np.arange(-10, 10, 0.1)
yd = np.arange(-10, 10, 0.1)    #X,Y的范围

xd,yd = np.meshgrid(xd,yd)      #绘制网格

zd = (np.sin(xd) * np.sin(yd))/(xd*yd)   #f(x,y)=(sin(x)*sin(y))/(x*y),注意括号

figure = plt.figure()

ax1 = plt.axes(projection='3d')             #创建三维坐标系

ax1.plot_surface(xd,yd,zd,rstride=1,cstride=1,cmap='rainbow')

#plt.show()#展示图片

输出:


作者主页(文火冰糖的硅基坊):https://blog.csdn.net/HiWangWenBing

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/119859493

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-24 15:30:44  更:2021-08-24 15:31:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/26 12:11:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计