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

Mop*_*per 8 python plot matplotlib

我仍然是python的新手,我想知道xy语句是否意味着y是x的子模块?如果是这样,那么命令不是:

import matplotlib.pyplot as plt
Run Code Online (Sandbox Code Playgroud)

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

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

knh*_*170 6

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

import matplotlib
Run Code Online (Sandbox Code Playgroud)

将导入此仓库中的所有文件.例如,使用它:

import matplotlib as mpl
mpl.pyplot.plot(...)
Run Code Online (Sandbox Code Playgroud)

要导入pyplot:

from matplotlib import pyplot as plt
# or
import matplotlib.pyplot as plt
plt.plot(...)
Run Code Online (Sandbox Code Playgroud)

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

编辑:

要全部导入:

from matplotlib import *
pyplot(...)
Run Code Online (Sandbox Code Playgroud)

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


Pla*_*sma 2

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

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

from matplotlib.pyplot import *

def plot():
    print "Hello!"

plot()
Run Code Online (Sandbox Code Playgroud)

会输出

Hello!
Run Code Online (Sandbox Code Playgroud)