如何在标准图中直接使用 matplotlib 中的 Axes3D 以避免 flake8 错误

How to directly use Axes3D from matplotlib in standard plot to avoid flake8 error

像这样使用典型的 3D 图时:

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.gca(projection='3d')

flake8 报告预期错误:

./tools.py:62:9: F401 'mpl_toolkits.mplot3d.Axes3D' imported but unused

我知道可以使用 # NOQA 评论来避免。但是有没有不同的方法来制定图中的投影,以便使用 Axes3D 对象?

如果这只是关于实际至少使用一次导入,你可以这样做

ax = fig.gca(projection=Axes3D.name)

因为 "3d"Axes3D class 的名称,通过它注册到投影列表。

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt

fig = plt.figure()
ax = Axes3D(fig)

但是,如果我对 documentation 理解得很好,那么从 1.0.0 版开始它就不再是首选方式了。为了完整起见,我仍然提到它。