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 坐标轴对象。

axis3d#

注意

请参阅 mpl_toolkits.mplot3d.axis3d._axinfo,了解包含可修改常量以控制 mplot3d 坐标轴外观和感觉(例如,标签间距、字体颜色和面板颜色)的字典。历史上,axis3d 因硬编码常量而无法进行用户调整,该字典在 1.1 版本中作为一项临时措施实现。

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

用于 3D 绘图的 Axis 类。

art3d#

art3d.Line3D(xs, ys, zs, *args[, axlim_clip])

3D 线对象。

art3d.Line3DCollection(lines[, axlim_clip])

3D 线条的集合。

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

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, axlim_clip])

具有 3D 位置和方向的文本对象。

art3d.get_dir_vector(zdir)

返回方向向量。

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

重新排序坐标,使 2D xsys 可以绘制在与 zdir 正交的平面上。

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

Line2D 转换为 Line3D 对象。

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

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, ...])

PolyCollection 转换为 Poly3DCollection 对象。

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

重新排序坐标,使轴围绕原始 z 轴旋转 zdir

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

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]]。