• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Matplotlib---3D图

武飞扬头像
三月七(爱看动漫的程序员)
帮助3

1. 3D图

  1.  
    # 3D引擎
  2.  
    from mpl_toolkits.mplot3d.axes3d import Axes3D
  1.  
    fig = plt.figure(figsize=(8, 5))
  2.  
     
  3.  
    x = np.linspace(0, 100, 400)
  4.  
    y = np.sin(x)
  5.  
    z = np.cos(x)
  6.  
     
  7.  
    # 三维折线图
  8.  
    axes = Axes3D(fig, auto_add_to_figure=False)
  9.  
    fig.add_axes(axes)
  10.  
    axes.plot(x,y,z)
  11.  
    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`中。

例如:

  1.  
    import matplotlib.pyplot as plt
  2.  
    from mpl_toolkits.mplot3d import Axes3D
  3.  
     
  4.  
    # 创建一个空的Figure对象
  5.  
    fig = plt.figure()
  6.  
     
  7.  
    # 不自动将创建的Axes3D对象添加到Figure中
  8.  
    axes = Axes3D(fig, auto_add_to_figure=False)
  9.  
     
  10.  
    # 将创建的Axes3D对象手动添加到Figure中
  11.  
    fig.add_axes(axes)

在这个例子中,通过将`auto_add_to_figure`参数设置为`False`来创建了一个空的`Axes3D`对

象`axes`,然后通过`fig.add_axes()`方法手动将其添加到`fig`中。这样就可以更灵活地控制

`Axes3D`对象的创建和添加。

在Matplotlib库中,`Axes3D`函数用于创建一个三维坐标系。

  1.  
    fig = plt.figure()
  2.  
    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`:观察视角的方位角(水平旋转角度),单位为度。

  1.  
    fig = plt.figure(figsize=(8, 5))
  2.  
     
  3.  
    # 三维折线图
  4.  
    axes = Axes3D(fig, auto_add_to_figure=False)
  5.  
    fig.add_axes(axes)
  6.  
     
  7.  
    # 三维散点图
  8.  
    x = np.random.rand(50)
  9.  
    y = np.random.rand(50)
  10.  
    z = np.random.rand(50)
  11.  
    axes.scatter(x, y, z,
  12.  
    color='red',
  13.  
    s=100)
  14.  
    plt.savefig('images/6-2.png')

学新通

  1.  
    fig = plt.figure(figsize=(8, 5))
  2.  
     
  3.  
    # 二维变成了三维
  4.  
    axes = Axes3D(fig, auto_add_to_figure=False)
  5.  
    fig.add_axes(axes)
  6.  
     
  7.  
    x = np.arange(1, 5)
  8.  
     
  9.  
    for m in x:
  10.  
    axes.bar(
  11.  
    np.arange(4),
  12.  
    np.random.randint(10, 100, size=4),
  13.  
    zs=m, # 在x轴中的第几个
  14.  
    zdir='x', # 在哪个方向上排列
  15.  
    alpha=0.7, # 透明度
  16.  
    width=0.5 # 宽度
  17.  
    )
  18.  
     
  19.  
    axes.set_xlabel('X轴', fontsize=18, color='red')
  20.  
    axes.set_ylabel('Y轴', fontsize=18, color='blue')
  21.  
    axes.set_zlabel('Z轴', fontsize=18, color='green')
  22.  
    plt.savefig('images/6-3.png')
  23.  
    plt.show()
学新通

学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhficjef
系列文章
更多 icon
同类精品
更多 icon
继续加载