我最喜欢的Python最重要的即兴创作之一是IPython和IPython Notebook。
我正在观看并重复此video中显示的内容,并发现了一些问题。
如视频中所述,我使用ipython --pylab
启动IPython。
我使用ipython notebook --pylab
启动IPython Notebook。
问题:scatter()
在IPython NoteBook中不起作用(我得到NameError
)但在IPython中工作正常。
函数rand()
的情况也是如此。我猜pylab
与matplotlib
,scipy
,numpy
,random
和其他基本库一起加载。
如果我错了,请告诉我。顺便说一下,我的 Anaconda Dist。加载了我的IPython和IPython NoteBook,如果这意味着什么。
当我使用--pylab
时,我可以知道所有加载内容的任何资源都会有所帮助。
感谢。
答案 0 :(得分:2)
这是pylab
标志的作用:
import numpy
import matplotlib
from matplotlib import pylab, mlab, pyplot
np = numpy
plt = pyplot
from IPython.core.pylabtools import figsize, getfigs
from pylab import *
from numpy import *
也就是说,建议您在没有标志的情况下启动笔记本(只需ipython notebook
),然后运行:
%matplotlib inline
有关详细信息,请参阅No Pylab Thanks。
关于分散问题,您应该尝试以下方法:
%matplotlib inline
import matplotlib.pyplot as plt
plt.scatter([1,2], [1,2])
答案 1 :(得分:0)
以下是您不应使用%pylab inline
:
%pylab inline
之前:bool(all(i for i in range(3))) => False
%pylab inline
之后:bool(all(i for i in range(3))) => True
%pylab inline
语句导入numpy.all
,它具有不同的行为。请参阅help(all)
之前和之后的%pylab inline
查看。另外,请先尝试print(', '.join(sorted(globals().keys())))
。之后看到了大量进口的东西。
正如其他人所提到的,%matplotlib inline
避免了这种情况以及随之而来的微妙/难以发现的问题。