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

7

当使用典型的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对象呢?

2个回答

20
如果这只是实际使用导入至少一次的问题,您可以执行以下操作:
ax = fig.gca(projection=Axes3D.name)

正如"3d"Axes3D类的名称,它已被注册到投影列表中。


这是预期的使用方式吗?还是投影列表和类名都使用了字符串“3d”只是巧合? - Jonathan Holvey
@Jonathan Holvey 投影列表包含所有已注册类的“名称”。因此,如果要创建一个 Axes3D,则 Axes3D.name 正是要放在那里的内容。 - ImportanceOfBeingErnest

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

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

然而,如果我理解文档正确的话,自版本1.0.0以来,这不再是首选方法。我仍然提到它是为了完整性。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接