当我使用Matplotlib绘制线条和矩形时,我通常使用:
from matplotlib.lines import Line2D
from matplotlib.patches import Rectangle
Line2D(...)
但我也发现有人只是使用:
import matplotlib.pyplot as plt
plt.Line2D(..)
我发现plt.Line2D
实际上是<class 'matplotlib.lines.Line2D'>
,这意味着matplotlib.pyplot.Line2D
是对matplotlib.lines.Line2D
的引用?
我很好奇:
dir(plt)
来查看,但不会在The Pyplot API中查看,我应该知道它们是故意设计还是已弃用?答案 0 :(得分:1)
在matplotlib.pyplot
内,有一行说
from matplotlib.lines import Line2D
因此,如果您导入matplotlib.pyplot
,则可以从pyplot命名空间中获取Line2D
,
import matplotlib.pyplot as plt
plt.Line2D(...)
由于命名空间本身的可用性不是文档记录的功能,因此可能不应该依赖它。使用从原始子模块导入的函数/对象也是更好的样式
另一方面,只需编写plt.Rectangle
而不必首先导入补丁模块非常方便
我想最后你需要自己决定哪种情况适用。