Python Matplotlib 3D绘图详解(汇总)

这篇具有很好参考价值的文章主要介绍了Python Matplotlib 3D绘图详解(汇总)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Python Matplotlib 3D绘图详解(汇总)

最初开发的 Matplotlib,仅支持绘制 2d 图形,后来随着版本的不断更新, Matplotlib 在二维绘图的基础上,构建了一部分较为实用的 3D 绘图程序包,比如 mpl_toolkits.mplot3d,通过调用该程序包一些接口可以绘制 3D散点图、3D曲面图、3D线框图等
mpl_toolkits 是 Matplotlib 的绘图工具包。

第一个三维绘图程序

下面编写第一个三维绘图程序。

首先创建一个三维绘图区域, plt.axes() 函数提供了一个参数

projection,将其参数值设置为 "3d"。如下所示:
#导入三维工具包mplot3d
from mpl_toolkits import mplot3d
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
#创建3d绘图区域
ax = plt.axes(projection='3d')
有了三维绘图区域,接下来就要构建 3d 图像,如下所示:
#从三个维度构建
z = np.linspace(0, 1, 100)
x = z * np.sin(20 * z)
y = z * np.cos(20 * z)
最后调用 plot3D() 方法绘制 3d 图形,代码如下:
#调用 ax.plot3D创建三维线图
ax.plot3D(x, y, z, 'gray')
ax.set_title('3D line plot')
plt.show()
完整程序如下所示:
from mpl_toolkits import mplot3d
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
#从三个维度构建
z = np.linspace(0, 1, 100)
x = z * np.sin(20 * z)
y = z * np.cos(20 * z)
#调用 ax.plot3D创建三维线图
ax.plot3D(x, y, z, 'gray')
ax.set_title('3D line plot')
plt.show()

输出结果如下所示:

Python Matplotlib 3D绘图详解(汇总)

图1:三维线图(3D Line)

上述代码中的 ax.plot3D() 函数可以绘制各种三维图形,这些三维图都要根据(x,y,z)三元组类来创建。

3D散点图

通过 ax.scatter3D() 函数可以绘制 3D 散点图,示例代码如下:

from mpl_toolkits import mplot3d
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
#创建绘图区域
ax = plt.axes(projection='3d')
#构建xyz
z = np.linspace(0, 1, 100)
x = z * np.sin(20 * z)
y = z * np.cos(20 * z)
c = x + y
ax.scatter3D(x, y, z, c=c)
ax.set_title('3d Scatter plot')
plt.show()

输出结果图:

Python Matplotlib 3D绘图详解(汇总)

图2:Matplotlib 3D绘图

3D等高线图

ax.contour3D() 可以用来创建三维等高线图,该函数要求输入数据均采用二维网格式的矩阵坐标。同时,它可以在每个网格点(x,y)处计算出一个 z 值。

以下示例展示了如何绘制三维正弦等高线图。代码如下:

from mpl_toolkits import mplot3d
import numpy as np
import matplotlib.pyplot as plt
def f(x, y):
   return np.sin(np.sqrt(x ** 2 + y ** 2))
#构建x、y数据
x = np.linspace(-6, 6, 30)
y = np.linspace(-6, 6, 30)
#将数据网格化处理
X, Y = np.meshgrid(x, y)
Z = f(X, Y)
fig = plt.figure()
ax = plt.axes(projection='3d')
#50表示在z轴方向等高线的高度层级,binary颜色从白色变成黑色
ax.contour3D(X, Y, Z, 50, cmap='binary')
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
ax.set_title('3D contour')
plt.show()

输出结果图如下:

Python Matplotlib 3D绘图详解(汇总)

图3:绘制三维轮廓图

3D线框图

线框图同样要采用二维网格形式的数据,与绘制等高线图类似。

线框图可以将数据投影到指定的三维表面上,并输出可视化程度较高的三维效果图。通过 plot_wireframe() 能够绘制 3D 线框图。代码如下:

from mpl_toolkits import mplot3d
import numpy as np
import matplotlib.pyplot as plt
#要绘制函数图像
def f(x, y):
   return np.sin(np.sqrt(x ** 2 + y ** 2))
#准备x,y数据
x = np.linspace(-6, 6, 30)
y = np.linspace(-6, 6, 30)
#生成x、y网格化数据
X, Y = np.meshgrid(x, y)
#准备z值
Z = f(X, Y)
#绘制图像
fig = plt.figure()
ax = plt.axes(projection='3d')
#调用绘制线框图的函数plot_wireframe()
ax.plot_wireframe(X, Y, Z, color='black')
ax.set_title('wireframe')
plt.show()

输出结果如下:

Python Matplotlib 3D绘图详解(汇总)

图4:Matplotlib绘制线框图

3D曲面图

曲面图表示一个指定的因变量y与两个自变量x和z之间的函数关系。

3D 曲面图是一个三维图形,它非常类似于线框图。不同之处在于,线框图的每个面都由多边形填充而成。Matplotlib 提供的 plot_surface() 函数可以绘制 3D 曲面图,该函数需要接受三个参数值 x,y 和 z 。示例代码如下:

from mpl_toolkits import mplot3d
import numpy as np
import matplotlib.pyplot as plt
#求向量积(outer()方法又称外积)
x = np.outer(np.linspace(-2, 2, 30), np.ones(30))
#矩阵转置
y = x.copy().T 
#数据z
z = np.cos(x ** 2 + y ** 2)
#绘制曲面图
fig = plt.figure()
ax = plt.axes(projection='3d')
调用plot_surface()函数
ax.plot_surface(x, y, z,cmap='viridis', edgecolor='none')
ax.set_title('Surface plot')
plt.show()

输出结果图:

Python Matplotlib 3D绘图详解(汇总)

图5:Matplotlib绘制曲面图文章来源地址https://www.toymoban.com/news/detail-439841.html

到了这里,关于Python Matplotlib 3D绘图详解(汇总)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【100天精通Python】Day65:Python可视化_Matplotlib3D绘图mplot3d,绘制3D散点图、3D线图和3D条形图,示例+代码

      mpl_toolkits.mplot3d 是 Matplotlib 库中的一个子模块,用于绘制和可视化三维图形,包括三维散点图、曲面图、线图等。它提供了丰富的功能来创建和定制三维图形。以下是 mpl_toolkits.mplot3d 的主要功能和功能简介: 3D 散点图 :通过 scatter 函数,你可以绘制三维散点图,用于显示

    2024年02月07日
    浏览(16)
  • Python Matplotlib数据可视化绘图之(六)————图片大小、颜色、标题、纵横坐标、画布和绘图区域背景颜色、Legend(图例)等的参数设置详解

    Python Matplotlib数据可视化绘图之(六)————图片大小、颜色、标题、纵横坐标、画布和绘图区域背景颜色、Legend(图例)等的参数设置详解

    前面五期的文章详细讲述了Python Matplotlib数据可视化绘图的方法技巧,主要涉及柱状图(《Python Matplotlib数据可视化绘图之(一)————柱状图》)、箱线图(《Python Matplotlib数据可视化绘图之(二)————箱线图》)、散点图(《Python Matplotlib数据可视化绘图之(三)—

    2024年02月06日
    浏览(14)
  • matplotlib绘图详解

    matplotlib绘图详解

    1、 matplotlib简介 ​ Matplotlib是一个Python 2D绘图库,它以多种硬拷贝格式和跨平台的交互式环境生成出版物质量的图形。 Matplotlib可用于Python脚本,Python和IPython (opens new window)Shell、Jupyter (opens new window)笔记本,Web应用程序服务器和四个图形用户界面工具包。 ​ Matplotlib 尝试使容

    2024年02月04日
    浏览(9)
  • 522个matplotlib绘图案例,包含:折线图、散点图、条形图、饼图、直方图、3D图等,源码可直接运行!

    Matplotlib 是一个广泛使用的 Python 绘图库,可以用于生成各种类型的图表和可视化。它提供了丰富的功能和灵活的接口,使用户可以轻松地创建精美的图表。下面将介绍一些常见的Matplotlib图表类型。 折线图(Line Plot) 折线图是 Matplotlib 中最常见的图表类型之一。它用于显示数

    2024年02月15日
    浏览(9)
  • Python 面向对象绘图(Matplotlib篇-16)

    Python 面向对象绘图(Matplotlib篇-16)

    Python 面向对象绘图(Matplotlib篇-16)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹

    2024年01月20日
    浏览(12)
  • Python 数据分析——matplotlib 快速绘图

    Python 数据分析——matplotlib 快速绘图

    matplotlib采用面向对象的技术来实现,因此组成图表的各个元素都是对象,在编写较大的应用程序时通过面向对象的方式使用matplotlib将更加有效。但是使用这种面向对象的调用接口进行绘图比较烦琐,因此matplotlib还提供了快速绘图的pyplot模块。本节首先介绍该模块的使用方法

    2024年02月11日
    浏览(10)
  • Python之Matplotlib绘图调节清晰度

    Python之Matplotlib绘图调节清晰度

    引言 使用python中的matplotlib.pyplot绘图的时候,如果将图片显示出来,或者另存为图片,常常会出现清晰度不够的问题,当然这种问题是对于png或者jpg这种格式的图片而言的,如果是生成svg或者pdf则不存在这种问题,但是png和jpg也是经常需要使用的图片格式,因此就需要想办法

    2024年02月01日
    浏览(14)
  • python matplotlib绘图过程中设置线条颜色

    python matplotlib绘图过程中设置线条颜色

    👨🏻‍🎓博主介绍:大家好,我是大锤爱编程的博客_CSDN博客-大数据,Go,数据分析领域博主,有五年的数据开开发,有着丰富的数仓搭建、数据分析经验。我会在我的系列文章里面分享我学到的知识,希望能够帮助到大家🌟 🌈擅长领域:大数据、数据分析 🙏🏻如果本文章

    2023年04月15日
    浏览(13)
  • Python数据可视化之matplotlib绘图教程

    Python数据可视化之matplotlib绘图教程

    目录 一、快速绘图 1. 折线图 2. 柱状图 3. 饼状图 4. 散点图 5. 图片保存  二、基本设置 1. 图片 2. 坐标轴 3. 刻度 4. 边距 5. 图例 6. 网格 7. 标题 8. 文本 9. 注释文本 10. 主题设置 11. 颜色 12. 线条样式 13. 标记形状 三、绘图进阶 1. 折线图 2. 条形图  3. 散点图 4. 饼状图 5. 多图并

    2024年02月04日
    浏览(15)
  • Matplotlib绘图知识小结--Python数据分析学习

    Matplotlib绘图知识小结--Python数据分析学习

    一、Pyplot子库绘制2D图表 1、Matplotlib Pyplot Pyplot 是 Matplotlib 的子库,提供了和 MATLAB 类似的绘图 API。 Pyplot 是常用的绘图模块,能很方便让用户绘制 2D 图表。 Pyplot 包含一系列绘图函数的相关函数,每个函数会对当前的图像进行一些修改,例如:给图像加上标记,生新的图像,

    2024年02月12日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包