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

Python 导入matplotlib和matplotlib.pyplot之间有什么区别?,python,matplotlib,plot,Python,Matplotlib,Plot,我对python还是相当陌生,我想知道x.y语句是否意味着y是x的子模块?如果是这样的话,命令不是: import matplotlib.pyplot as plt 仅导入此特定子模块而不导入其他子模块?我必须这样做才能访问hist功能。调用import matplotlib as plt时,这对通常导入的模块有何影响?我可以用plt名称将matplotlib中的所有模块放在一起吗 我知道这个问题与matplotlib有关,但这个问题的答案并没有告诉我matplotlib中是否没有其他内容被导

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

import matplotlib.pyplot as plt
仅导入此特定子模块而不导入其他子模块?我必须这样做才能访问
hist
功能。调用
import matplotlib as plt
时,这对通常导入的模块有何影响?我可以用plt名称将matplotlib中的所有模块放在一起吗


我知道这个问题与matplotlib有关,但这个问题的答案并没有告诉我matplotlib中是否没有其他内容被导入,以及如何导入所有matplotlib而不必担心子模块被遗漏

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

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中导入,这是默认设置。

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

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

from matplotlib.pyplot import *

def plot():
    print "Hello!"

plot()
将输出

Hello!

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


你说你不能再使用
plot
函数是什么意思?@Plasma导入matplotlip.pyplot后,你不能再使用plt.plot(x,y)(模块未导入…?),或者我只是做了一些愚蠢的事情?那么如果你说
导入matplotlib.pyplot作为plt
plt.plot()
将不起作用?或者你说导入matplotlib.pyplot然后导入plt.plot()?@Plasma你说得对,我刚刚试过这个,肯定以前做错了什么。我修改了这个问题,但它让我更加困惑。。。是否仅导入pyplot模块?或者包括子模块pyplot在内的所有matplotlib?pyplot是matplotlib的子模块,如果您以导入方式查看它,可能会更清楚:
从matplotlib导入pyplot作为plt
。可以从matplotlib import*中说
,然后在matplotlib中导入,包括pyplot(并通过调用
matplotlib.pyplot.plot
进行绘图。但是,如果要绘图,您可能只需要
pyplot
。是的,我正在Spyder内部使用IPython控制台。谢谢,这是有意义的。我还在想(我刚才问了@Plasma同样的问题)如果有一种方法可以直接导入所有子模块中的所有函数,那么这可能不太理想,但在我看来,导入matplotlib包含的所有内容并使用简单语句(如
plot(x,y))会更容易
至少在学习如何正确使用python库的前几个月!我不知道IPython自动导入了其中一些库,但它解释了我在使用它时注意到的一些事情!您的编辑工作方式使我现在可以使用pyplot.plot(x,y),但我不能只键入plot(x,y).不过没关系,多亏了你和Plasma,我才明白现在发生了什么!@Moppentapper你真的明白了吗?
plot
matplotlib.pyplot
中的一个函数,当它只导入
matplotlib.
导入时,你抱怨不能简单地
plot
?在有用的时候投票给答案。我理解的方式是:这是:pyplot是matplotlib的子模块。从matplotlib import*
写入
将所有子模块导入工作区。在这种情况下,要使用
plot
函数,而不是写入
matplotlib.pyplot.plot(x,y)
我可以写入
pyplot.plot(x,y)
,但我无法写入
plot(x,y)
作为
绘图
不会直接在工作区中定义。如果要使用
绘图
而不使用“前缀”然后我必须使用matplotlib.pyplot import*
中的
,但我无法将所有子模块中的所有函数直接导入工作区。这是正确的吗?当您了解发生的事情时,Python会更有趣!!这是有道理的,因此我假设至少有一个函数在matplotlib的两个子模块中定义。然后移植它会引起阴影。有趣的是,现在这一切都建立起来了!