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

时间:2016-04-16 08:21:03

标签: python matplotlib plot

我仍然对python很新,我想知道x.y语句是否意味着y是x的子模块?如果是这样,请不要执行命令:

import matplotlib.pyplot as plt

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

我知道这个问题与what is the difference between importing python sub-modules from NumPy, matplotlib packages有关但是这个问题的答案并没有告诉我matplotlib中是否还有其他内容导入,以及如何导入所有matplotlib而不必担心子模块遗漏了

3 个答案:

答案 0 :(得分:6)

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

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等。默认情况下,在Ipython中导入matplotlib。

答案 1 :(得分:1)

我不知道从每个子模块导入所有函数的任何方法。从子模块导入所有函数可能与您建议的方式一样。 from matplotlib.pyplot import *

注意导入每个功能的潜在问题;您可以通过定义具有相同名称的自己的函数来覆盖导入的函数。 E.g:

from matplotlib.pyplot import *

def plot():
    print "Hello!"

plot()

会输出

Hello!

答案 2 :(得分:0)

我安装了conda,它为〜/ .bashrc添加了一些东西。

评论使它对我有用。