matplotlib 三维图表绘制方法简介

作者:アハハハ君 时间:2023-08-06 00:06:52 

1. python三维图表绘制方法简介

python三维图表的绘制算是二维图表的一个进阶版本,本质上和二维图表的绘制并无差别,唯一的区别在于使用的库略有差异。

相较于二维图表使用的pyplot库,三维图表的绘制使用的是Axes3D库。

库引入语句为:


from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

上下的操作就和二维图表绘制大差不差了,首先定义三维画布,然后向里面绘制三维图表,最后打印出结果即可。

下面,我们通过一些实例来进行说明。

2. 实例说明

 1. 三维曲线图绘制

首先,我们来看一下三维曲线图的绘制。

三维曲线图的绘制和二维曲线图的绘制方法极其相似,只是我们需要做以下两点修改:

  • 将画布修改为三维坐标系;

  • 传参时同时传入x、y、z三个维度的坐标信号。

另外,plot函数需要修改三维曲线绘制的Axes3D.plot函数。

给出代码样例如下:


import numpy
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

theta = numpy.linspace(0, 3.14*4, 200)
r = numpy.linspace(0, 1, 200)
x = r * numpy.cos(theta)
y = r * numpy.sin(theta)
z = numpy.linspace(0, 2, 200)

fig = plt.figure(figsize=(12, 7))
ax1 = plt.axes(projection='3d')
ax1.plot(x, y, z)
plt.show()

运行即可得到一张三维曲线图。

matplotlib 三维图表绘制方法简介

2. 三维散点图绘制

下面,我们来看一下三维空间中的散点图绘制方法。

其方法其实挺简单的,就是先绘制x、y面的网点坐标,计算相应的z轴高度,而后创建一张三维图,然后通过Axes3D.scatter函数进行散点图绘制即可。

我们给出具体的代码样例如下:


import numpy
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

x = numpy.linspace(-2, 2, 10)
y = numpy.linspace(-2, 2, 10)
xx, yy = numpy.meshgrid(x, y)
z = xx ** 2 - yy ** 2

fig = plt.figure(figsize=(12, 7))
ax1 = plt.axes(projection='3d') # 创建三维坐标轴
ax1.scatter(xx, yy, z) # 绘制三维散点图
plt.show()

运行即可得到三维散点图。

matplotlib 三维图表绘制方法简介

3. 三维曲面图绘制

三维曲面图的绘制与三维极其类似,只需要将Axes3D.scatter函数替换为Axes3D.plot_surface函数即可。

我们就不再多做解释了,直接给出代码样例如下:


import numpy
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

x = numpy.linspace(-2, 2, 10)
y = numpy.linspace(-2, 2, 10)
xx, yy = numpy.meshgrid(x, y)
print(xx.shape, yy.shape)
z = xx ** 2 - yy ** 2

fig = plt.figure(figsize=(12, 7))
ax1 = plt.axes(projection='3d') # 创建三维坐标轴
ax1.plot_surface(xx, yy, z) # 绘制三维曲面图
plt.show()

运行即可得到三维曲面图。

matplotlib 三维图表绘制方法简介

3. 参考链接

 https://matplotlib.org/tutorials/toolkits/mplot3d.html

Python三维绘图–Matplotlib

来源:https://blog.csdn.net/codename_cys/article/details/108686439

标签:matplotlib,三维图表
0
投稿

猜你喜欢

  • Java连接mysql数据库代码实例程序

    2024-01-22 03:01:26
  • python读取目录下所有的jpg文件,并显示第一张图片的示例

    2023-06-21 16:31:58
  • 最新WebStorm2020.2注册码永久激活(激活到2089年) <font color=red>原创</font>

    2023-03-20 19:28:51
  • 解决python调用matlab时的一些常见问题

    2022-10-13 16:11:01
  • Python 调用 C++ 传递numpy 数据详情

    2021-05-12 20:00:39
  • 解决csv.writer写入文件有多余的空行问题

    2022-12-05 06:54:28
  • python2 对excel表格操作完整示例

    2022-08-27 00:35:06
  • python输出第n个默尼森数的实现示例

    2022-08-12 21:07:25
  • 关于H1的位置

    2008-04-30 12:20:00
  • Django自定义权限及用户分组

    2022-03-13 08:18:31
  • Python中getattr函数和hasattr函数作用详解

    2022-10-29 15:42:11
  • python爬取代理IP并进行有效的IP测试实现

    2021-05-08 15:31:38
  • python 中Arduino串口传输数据到电脑并保存至excel表格

    2022-05-17 05:41:11
  • vue如何在自定义组件中使用v-model

    2024-06-07 16:03:25
  • python进行图像边缘检测的详细教程

    2023-08-10 04:53:40
  • MySql存储过程循环的使用分析详解

    2024-01-19 05:13:48
  • python距离测量的方法

    2022-12-05 18:27:45
  • Selenium之模拟登录铁路12306的示例代码

    2022-01-22 17:06:27
  • 详解java调用ffmpeg转换视频格式为flv

    2024-01-19 03:13:11
  • 阿里云安装mysql数据库出现2002错误解决办法

    2024-01-15 10:59:14
  • asp之家 网络编程 m.aspxhome.com