PyCharm不会正确打开matplotlib图

Sav*_*nry 24 python plot matplotlib pycharm

我有一个PyCharm和matplotlib的问题,我似乎无法纠正.

当我使用PyCharm和ipython作为解释命令的控制台时,在我保存图形之前不会显示图形.但是,当我尝试从PyCharm外部绘图时,这不会发生.

这是一个在PyCharm 中失败的exmaple进程:

In[2]: import matplotlib.pyplot as plt
Backend MacOSX is interactive backend. Turning interactive mode on.

In[3]: plt.plot([1,2,3,4],[1,4,9,16], 'ro')
Run Code Online (Sandbox Code Playgroud)

打开一个标有"图1"标签的窗口.但是,没有绘图,鼠标悬停在它上面时切换到SPOD(我在Mac上).此时,我可以试试

In[4]: plt.show()
Run Code Online (Sandbox Code Playgroud)

但仍然没有出现情节.但是,如果我这样做:

In[5]: plt.savefig('foo.png')
Run Code Online (Sandbox Code Playgroud)

不仅用该名称保存图形,图形显示在图1窗口中.请注意,PyCharm已经设置了交互模式,并且已经识别出我的后端(应该是?)MacOS.

我在通用终端会话中通过python和ipython控制台使用相同的过程,甚至通过emacs,并且在所有情况下,情节都出现在调用plt.plot()线路上.无需plt.show()通话.

实际上,我甚至可以通过PyCharm使用终端并获得所需的情节.一个答案是我应该使用这些方法进行绘图并忽略PyCharm.然而,假设我发现PyCharm的"花里胡哨"足够吸引人,我真的想用它作为我的IDE,但希望能够检查情节而不必经历plt.savefig()麻烦(因为我没有我想要保持我尝试的每一个阴谋.

我也试过切换后端plt.switch_backend().我已经尝试了列出的所有选项,所有这些选项都失败的原因主要是没有安装某些软件包或者系统错误.我没有尝试安装任何东西来使用新的后端,所以我不知道是否有另一个正确安装的后端可以解决这个问题.当然,更愿意尝试!

系统细节:

MacBookPro Retina 2012年中期,16GB内存,优胜美地10.10

Python 3.4.2

ipython 2.3.1

PyCharm Community Edition 4.0.4

请注意,我已根据以下问题审核并尝试了各种修补程序:

Python图将无法打开

如何在matlab/python中切换后端

PyCharm + Matplotlib?

Matplotlib图被困(灰色窗口)

尽管我打电话给pyplot.show(),matplotlib也没有显示我的图画

编辑 如下面的评论中所述,这似乎是一个错误,而不是我的设置失败.因此,我正在修改这个问题,询问是否有已知的解决方法.

sor*_*rin 2

OS X 下的 PyCharm(包括最新 v5 版本)存在一个已知问题,该问题是由 OS X 上安装 Python 的方式引起的。

大多数人确实使用 Python 2 和 3 安装brew,这也替换了从命令行使用的默认 Python 解释器。尽管如此,pipGUI 应用程序的默认解释器和可执行文件也没有被替换。

如果您想要更具体的答案,您必须使用以下方法正确记录您的环境:

  • which -a python从命令行执行
  • which -a pip从命令行执行
  • 从 PyCharm 和控制台内部执行print(sys.path)和,并对它们进行比较。print(os.env)

通过这样做,您可能会意识到加载了错误版本的模块。