Matplotlib---3D图
1. 3D图
-
# 3D引擎
-
from mpl_toolkits.mplot3d.axes3d import Axes3D
-
fig = plt.figure(figsize=(8, 5))
-
-
x = np.linspace(0, 100, 400)
-
y = np.sin(x)
-
z = np.cos(x)
-
-
# 三维折线图
-
axes = Axes3D(fig, auto_add_to_figure=False)
-
fig.add_axes(axes)
-
axes.plot(x,y,z)
-
plt.savefig('images/6-1.png')
np.linspace()函数是NumPy库中的一个函数,用于生成等间隔的数值序列。
使用格式:
np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
参数说明:
- start:序列的起始值。
- stop:序列的结束值。
- num:要生成的等间隔样本数量,默认为50。
- endpoint:布尔值,控制是否包含stop值,默认为True,即包含。
- retstep:布尔值,控制是否返回样本之间的步长值,默认为False,即不返回。
- dtype:返回数组的数据类型,默认为None,即与输入参数的数据类型一致。
`axes = Axes3D(fig, auto_add_to_figure=False)`是一种创建`Axes3D`对象的方式,其中`fig`是
一个已经创建好的`Figure`对象。
参数说明:
- `fig`: 一个已经创建好的`Figure`对象,用于在该图形上创建`Axes3D`对象。
- `auto_add_to_figure`: 可选参数,默认为`True`。当设置为`True`时,创建的`Axes3D`对象会自动
添加到`fig`中。当设置为`False`时,需要手动将该对象添加到`fig`中。
使用这种方式创建`Axes3D`对象可以灵活地控制对象的添加和布局。如果`auto_add_to_figure`参
数设为`True`,那么创建对象后它将自动添加到`fig`中,而不需要额外的步骤。如果设为`False`,
则需要手动将对象添加到`fig`中。
例如:
-
import matplotlib.pyplot as plt
-
from mpl_toolkits.mplot3d import Axes3D
-
-
# 创建一个空的Figure对象
-
fig = plt.figure()
-
-
# 不自动将创建的Axes3D对象添加到Figure中
-
axes = Axes3D(fig, auto_add_to_figure=False)
-
-
# 将创建的Axes3D对象手动添加到Figure中
-
fig.add_axes(axes)
在这个例子中,通过将`auto_add_to_figure`参数设置为`False`来创建了一个空的`Axes3D`对
象`axes`,然后通过`fig.add_axes()`方法手动将其添加到`fig`中。这样就可以更灵活地控制
`Axes3D`对象的创建和添加。
在Matplotlib库中,`Axes3D`函数用于创建一个三维坐标系。
-
fig = plt.figure()
-
ax = fig.add_subplot(111, projection='3d')
- `fig = plt.figure()`:创建一个新的图像窗口。
- `ax = fig.add_subplot(111, projection='3d')`:在图像窗口中添加一个子图,并将其设置为三维坐
标系。
参数说明:
- `projection='3d'`:指定子图的投影方式为三维('3d')。这个参数告诉Matplotlib将图像显示为三维
形式。
一旦你创建了一个`Axes3D`对象,你就可以使用它的方法和属性来绘制和自定义三维图形。
常用的方法和属性包括(但不限于):
- `scatter(x, y, z, ...)`: 绘制三维散点图。
- `x`、`y`、`z`:表示数据点的x、y、z坐标值。
- `...`:其他用于自定义样式的参数,例如点的大小、颜色等。
- `plot(x, y, z, ...)`: 绘制三维线图。
- `x`、`y`、`z`:表示数据点的x、y、z坐标值。
- `...`:其他用于自定义样式的参数,例如线的类型、颜色等。
- `plot_surface(X, Y, Z, ...)`: 绘制三维曲面图。
- `X`、`Y`、`Z`:表示网格点的x、y、z坐标值。
- `...`:其他用于自定义样式的参数,例如曲面的颜色、透明度等。
- `set_xlabel(label)`, `set_ylabel(label)`, `set_zlabel(label)`: 设置x、y、z坐标轴的标签。
- `label`:坐标轴的标签文本。
- `set_title(title)`: 设置子图的标题。
- `title`:子图的标题文本。
- `set_xlim(left, right)`, `set_ylim(bottom, top)`, `set_zlim(bottom, top)`: 设置x、y、z坐标轴的取值范围(最小值和最大值)。
- `left`, `right`, `bottom`, `top`:坐标轴的取值范围。
- `view_init(elev, azim)`: 设置观察视角的高度角和方位角。
- `elev`:观察视角的高度角(垂直旋转角度),单位为度。
- `azim`:观察视角的方位角(水平旋转角度),单位为度。
-
fig = plt.figure(figsize=(8, 5))
-
-
# 三维折线图
-
axes = Axes3D(fig, auto_add_to_figure=False)
-
fig.add_axes(axes)
-
-
# 三维散点图
-
x = np.random.rand(50)
-
y = np.random.rand(50)
-
z = np.random.rand(50)
-
axes.scatter(x, y, z,
-
color='red',
-
s=100)
-
plt.savefig('images/6-2.png')
-
fig = plt.figure(figsize=(8, 5))
-
-
# 二维变成了三维
-
axes = Axes3D(fig, auto_add_to_figure=False)
-
fig.add_axes(axes)
-
-
x = np.arange(1, 5)
-
-
for m in x:
-
axes.bar(
-
np.arange(4),
-
np.random.randint(10, 100, size=4),
-
zs=m, # 在x轴中的第几个
-
zdir='x', # 在哪个方向上排列
-
alpha=0.7, # 透明度
-
width=0.5 # 宽度
-
)
-
-
axes.set_xlabel('X轴', fontsize=18, color='red')
-
axes.set_ylabel('Y轴', fontsize=18, color='blue')
-
axes.set_zlabel('Z轴', fontsize=18, color='green')
-
plt.savefig('images/6-3.png')
-
plt.show()
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhficjef
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01