Python 皮查姆赢得';无法正确打开matplotlib绘图
我对PyCharm和matplotlib有一个问题,我似乎无法纠正 当我使用PyCharm和ipython作为解释命令的控制台时,在保存图形之前不会显示绘图。但是,当我尝试从PyCharm外部绘图时,不会出现这种情况 以下是一个在PyCharm中失败的exmaple进程:Python 皮查姆赢得';无法正确打开matplotlib绘图,python,matplotlib,plot,pycharm,Python,Matplotlib,Plot,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]
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。但是,假设我发现PyCharm的“铃铛和哨子”足够吸引人,我真的很想将其用作我的IDE,但希望能够在不必经过plt.savefig()
麻烦的情况下检查绘图(因为我不想保留我尝试的每个绘图)
我还尝试过通过plt.switch\u backend()
切换后端。我已经尝试了列出的所有选项,所有这些选项都失败了,主要原因是没有安装某些软件包或安装在错误的系统上。我没有尝试安装任何东西来使用新的后端,所以我不知道另一个正确安装的后端是否能解决这个问题。当然,我非常愿意尝试
系统详细信息:
MacBookPro视网膜2012年年中,16GB内存,约塞米蒂10.10
Python 3.4.2
ipython 2.3.1
PyCharm社区版4.0.4
请注意,我已从以下问题中回顾并尝试了修复的变体:
编辑
正如下面的评论所指出的,这似乎是我的设置失败,而不是我的设置失败。因此,我正在修改这个问题,以询问是否存在已知的解决方法 OS X下的PyCharm(包括最新的v5版本)存在一个已知问题,这是由于在OS X上安装Python的方式造成的 大多数人使用
brew
安装Python2和Python3,这也取代了从命令行使用的默认Python解释器。不过,对于GUI应用程序,默认解释器和pip
可执行文件也不会被替换
如果您想要更具体的答案,您必须使用以下内容正确记录您的环境:
- 从命令行执行
which-a python
- 从命令行执行哪个-pip
- 从PyCharm和console内部执行
和打印(sys.path)
,并进行比较打印(os.env)
通过这样做,您可能会意识到加载了错误版本的模块。我在OSX 10.10上用Pycharm 4.0 Pro复制了这种行为。这似乎是Pycharm的Python控制台中的一个问题,如所示。因此,答案可能是删除Pycharm。惨淡的。我编辑了我的问题,以反映这个问题,并询问是否有已知的解决方法。将pycharm与自己的ipython控制台(而不是它提供的终端)一起使用,对我来说最大的价值是发送代码位以进行评估的交互过程。仅使用终端需要完全在终端中输入代码,然后计算我想要尝试的代码片段,或者从编辑器窗口复制并粘贴它们。。。看起来修复程序已经实现,将包含在下一次更新中。我正在Mac OsX 10.11上使用PyCharm Community Edition 2016.2 w/IPython 5.0和python 3.5.2解释器。我已经检查了所有路径,它们都匹配,但我仍然有同样的问题。我可以用plt.figure()打开一个图,但我只得到SPOD。调用plt.plot()会显示lines对象,但不会打印到窗口(无论之前是否有)。从那以后,控制台似乎真的很慢。使用MacOSX后端。