PyCharm无法正确打开matplotlib图

时间:2015-02-21 13:11:47

标签: python matplotlib plot pycharm

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

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

这是PyCharm中失败的一个例子:

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')

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

In[4]: plt.show()

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

In[5]: plt.savefig('foo.png')

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

我在通用终端会话中通过python和ipython控制台使用相同的过程,甚至通过emacs,并且在所有情况下,调用plt.plot()行时都会显示该图。无需plt.show()电话。

实际上,我甚至可以通过PyCharm使用终端并获得所需的情节。一个答案是我应该使用这些方法进行绘图并忽略PyCharm。但是,假设我找到了#34;钟声和口哨" 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 plots won't open

How to switch backends in matlab/python

PyCharm + Matplotlib?

Matplotlib figure stucked (grey window)

matplotlib does not show my drawings although I call pyplot.show()

修改 如下面的评论中所述,这似乎是bug,而不是我的设置失败。因此,我正在修改此问题,询问是否存在已知的解决方法。

1 个答案:

答案 0 :(得分:1)

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

大多数人使用brew安装Python 2和3,它也取代了从命令行使用的默认Python解释器。尽管如此,默认解释器和pip可执行文件也不会替换为GUI应用程序。

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

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

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