plt.show() 使用 Anaconda Python 在 OSX 上挂起

plt.show() hangs on OSX with Anaconda Python

import matplotlib.pyplot as plt
plt.figure()
plt.show()

...蟋蟀。解释器挂了,我好像打不开。

这是 Python 2.7.9 和 Anaconda 2.2.0 (x86_64) 在 OSX。

其他人也遇到过这种情况吗?我该如何解决这个问题?

尝试使用 pythonw 而不是 python 开始 Python。

在 iPython 的开头添加这个:

% pylab inline

这很可能是您的后端设置存在问题。如果您希望您的绘图以内联方式显示(在您的笔记本内部),请使用以下添加的行导入:

import matplotlib.pyplot as plt
%matplotlib inline

要让您的图表以交互方式内联显示(在您的笔记本中),请改用此行导入:

import matplotlib.pyplot as plt
%matplotlib notebook

要让您的图表显示在您的笔记本之外(在新的 window 中),请改用此行导入:

import matplotlib.pyplot as plt
%matplotlib qt

注意:您需要重新启动内核才能在inline notebook和外部qt之间切换以避免错误:警告:无法更改为不同的GUI工具包

最后,如果问题仍然存在,以下内容可能有助于发现问题所在:

import matplotlib
matplotlib.get_backend()

如果使用上面的任何选项,它应该输出以下之一:

  • 'module://ipykernel.pylab.backend_inline'
  • 'nbAgg'
  • 'Qt4Agg'

修改matplotlib.pyplot导入为:

import matplotlib
matplotlib.use('TkAgg') #----> Specify the backend
import matplotlib.pyplot as plt