mpl_toolkits.mplot3d#

mplot3d 工具包通过提供一个可以创建 3D 场景的 2D 投影的 Axes 对象,为 Matplotlib 添加了简单的 3D 绘图功能(散点图、曲面图、线图、网格图等)。生成的图形将与常规 2D 图具有相同的外观和感觉。它不是最快的或功能最完整的 3D 库,但它随 Matplotlib 一起提供,因此在某些用例中可能是一个更轻量级的解决方案。

更多信息请参见 mplot3d 教程

../../_images/demo_mplot3d.png

交互式后端还提供了旋转和缩放 3D 场景的功能。可以通过简单地点击并拖动场景来旋转 3D 场景。平移是通过点击鼠标中键完成的,而缩放则是通过右键点击场景并上下拖动鼠标来实现的。与 2D 图表不同,工具栏的平移和缩放按钮不用于此操作。

备注

pyplot 不能用于向3D图添加内容,因为其函数签名严格为2D,无法处理3D所需的额外信息。相反,通过调用 Axes3D 对象上的相应方法,使用显式API。

axes3d#

备注

Matplotlib 中的 3D 绘图功能尚未像 2D 绘图那样成熟。请将任何行为不符合预期的功能报告为错误。此外,帮助和补丁将非常受欢迎!

axes3d.Axes3D (fig[, rect, elev, azim, roll, ...]) 3D Axes 对象。

axis3d#

备注

参见 mpl_toolkits.mplot3d.axis3d._axinfo ,这是一个包含常量的字典,这些常量可以被修改以控制 mplot3d 轴的外观和感觉(例如,标签间距、字体颜色和面板颜色)。历史上,axis3d 一直存在硬编码常量的问题,这使得用户无法调整,因此这个字典在版本 1.1 中作为临时措施被实现。

axis3d.Axis(axes, *[, rotate_label])

用于3D图的轴类。

art3d#

art3d.Line3D(xs, ys, zs, *args, **kwargs)

3D 线条对象。

art3d.Line3DCollection(segments, *[, zorder])

一组3D线条。

art3d.Patch3D(*args[, zs, zdir])

3D 补丁对象。

art3d.Patch3DCollection(*args[, zs, zdir, ...])

一组3D补丁。

art3d.Path3DCollection(*args[, zs, zdir, ...])

一组3D路径。

art3d.PathPatch3D(path, *[, zs, zdir])

3D PathPatch 对象。

art3d.Poly3DCollection(verts, *args[, ...])

一组3D多边形。

art3d.Text3D([x, y, z, text, zdir])

具有三维位置和方向的文本对象。

art3d.get_dir_vector(zdir)

返回一个方向向量。

art3d.juggle_axes(xs, ys, zs, zdir)

重新排列坐标,使得2D的*xs*、*ys*可以在与*zdir*正交的平面上绘制。

art3d.line_2d_to_3d(line[, zs, zdir])

Line2D 转换为 Line3D 对象。

art3d.line_collection_2d_to_3d(col[, zs, zdir])

LineCollection 转换为 Line3DCollection 对象。

art3d.patch_2d_to_3d(patch[, z, zdir])

Patch 转换为 Patch3D 对象。

art3d.patch_collection_2d_to_3d(col[, zs, ...])

PatchCollection 转换为 Patch3DCollection 对象(或将 PathCollection 转换为 Path3DCollection 对象)。

art3d.pathpatch_2d_to_3d(pathpatch[, z, zdir])

PathPatch 转换为 PathPatch3D 对象。

art3d.poly_collection_2d_to_3d(col[, zs, zdir])

PolyCollection 转换为 Poly3DCollection 对象。

art3d.rotate_axes(xs, ys, zs, zdir)

重新排列坐标,使得轴沿原始z轴方向旋转 zdir

art3d.text_2d_to_3d(obj[, z, zdir])

Text 转换为 Text3D 对象。

proj3d#

proj3d.inv_transform(xs, ys, zs, invM)

通过投影矩阵的逆矩阵 invM 变换这些点。

proj3d.proj_transform(xs, ys, zs, M)

通过投影矩阵 M 变换点。

proj3d.proj_transform_clip(xs, ys, zs, M)

[已弃用]

proj3d.world_transformation(xmin, xmax, ...)

生成一个矩阵,将指定范围内的齐次坐标缩放到 [0, 1],如果指定了绘图框的纵横比,则缩放到 [0, pb_aspect[i]]。