导入 matplotlib 和 matplotlib.pyplot 有什么区别?

新手上路,请多包涵

我对 python 还是很陌生,想知道 xy 语句是否意味着 y 是 x 的子模块?如果是这样,命令不是:

 import matplotlib.pyplot as plt

只导入这个特定的子模块而没有别的?我必须这样做才能访问 hist 函数。这对调用 import matplotlib as plt 时通常导入的模块有何影响?我可以把matplotlib中的所有模块都放在plt名下吗?

我知道这个问题与 从 NumPy 和 matplotlib 包导入 python 子模块有什么区别 有关但是这个问题的答案没有告诉我是否导入了 matplotlib 中的任何其他内容以及如何导入所有 matplotlib不用担心子模块被遗漏。

原文由 Moppentapper 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 724
2 个回答

我不知道有什么方法可以从每个子模块导入所有函数。可以按照您建议的方式从子模块导入所有功能,例如 from matplotlib.pyplot import *

注意导入每个函数的潜在问题;您可以通过定义自己的同名函数来覆盖导入的函数。例如:

 from matplotlib.pyplot import *

def plot():
    print "Hello!"

plot()

会输出

Hello!

原文由 Plasma 发布,翻译遵循 CC BY-SA 3.0 许可协议

看看这个代码库树: matplotlib 包含一个代码库,而 pyplot 只是这个库的一个文件。

 import matplotlib

将导入此 repo 中的所有文件。例如使用它:

 import matplotlib as mpl
mpl.pyplot.plot(...)

要导入 pyplot:

 from matplotlib import pyplot as plt
# or
import matplotlib.pyplot as plt
plt.plot(...)

一个问题问你:你使用什么控制台?我想这是 Ipython 控制台之类的?

编辑

全部导入:

 from matplotlib import *
pyplot(...)

为什么我猜你在使用 Ipython? Ipython 控制台在启动时默认从 numpy 和一些其他库导入所有模块,因此在 Ipython 控制台中您可以简单地使用: sqrt ,而不是 import math; math.sqrt 等。matplotlib 被导入Ipython 是默认的。

原文由 knh170 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题