You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

matplotlib的add_subplot为何官方文档中找不到projection参数的'3d'可选值?

问题描述

我在使用Matplotlib的add_subplot方法时,参考官方示例设置projection='3d'可以正常运行,示例代码如下:

import matplotlib.pyplot as plt
import numpy as np

# 固定随机种子保证结果可复现
np.random.seed(19680801)

fig = plt.figure()
ax = fig.add_subplot(projection='3d')
x, y = np.random.rand(2, 100) * 4
hist, xedges, yedges = np.histogram2d(x, y, bins=4, range=[[0, 4], [0, 4]])

# 构造16个柱状图的锚点位置数组
xpos, ypos = np.meshgrid(xedges[:-1] + 0.25, yedges[:-1] + 0.25, indexing="ij")
xpos = xpos.ravel()
ypos = ypos.ravel()
zpos = 0

# 构造16个柱状图的尺寸数组
dx = dy = 0.5 * np.ones_like(zpos)
dz = hist.ravel()

ax.bar3d(xpos, ypos, zpos, dx, dy, dz, zsort='average')

plt.show()

但我查阅add_subplot的官方文档时,projection参数的可选枚举值只标注了 {None, 'aitoff', 'hammer', 'lambert', 'mollweide', 'polar', 'rectilinear', str},没有出现'3d'这个选项,为什么文档里找不到'3d'这个投影类型?

解答
  • '3d' 不是Matplotlib核心库原生内置的投影类型,是由可选扩展模块 mpl_toolkits.mplot3d 提供的扩展能力。
  • 当你调用add_subplot(projection='3d')时,Matplotlib会自动加载mpl_toolkits.mplot3d模块,该模块加载时会自动将'3d'注册到全局投影注册表中,因此可以正常识别使用。
  • add_subplot官方文档的枚举值仅列出了核心库自带的投影类型,末尾的str类型就是预留用于匹配所有扩展模块、第三方工具注册的自定义投影名称,所以不会单独把'3d'列在核心API的参数枚举里。

内容的提问来源于stack exchange,提问作者Troy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 11:06:03