PyCharm 无法正确打开 matplotlib 图
PyCharm won't open matplotlib plots correctly
我有一个关于 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')
此 将 打开带有标签 "Figure 1" 的 window。但是,没有出现任何情节,鼠标悬停在它上面时会切换到 SPOD(我在 Mac 上)。此时,我可以试试
In[4]: plt.show()
但是还是没有剧情出现。 但是,如果我这样做:
In[5]: plt.savefig('foo.png')
不仅用那个名字保存了一个图形,图 1 window 中还显示了该图。请注意,PyCharm 已将交互模式设置为打开,并且它已识别出我的后端是(应该是?)MacOS。
我在通用终端会话中通过 python 和 ipython 控制台使用了相同的过程,甚至通过 emacs,在所有情况下,情节都出现在调用 plt.plot()
行。不需要 plt.show()
调用。
的确,我什至可以通过PyCharm使用终端并获得想要的情节。一个答案是我应该只使用这些方法进行绘图并忽略 PyCharm。然而,假设我发现 PyCharm 的 "bells and whistles" 足够吸引我,我真的很想将它用作我的 IDE,但希望能够检查地块而不必经过plt.savefig()
麻烦(因为我不想保留我尝试的每一个情节)。
我也尝试过通过 plt.switch_backend()
切换后端。我已经尝试了列出的所有选项,所有这些选项都失败了,主要是因为没有安装某些软件包或在错误的系统上。我没有尝试安装任何东西来使用新的后端,所以我不知道另一个正确安装的后端是否可以解决这个问题。当然,更愿意尝试!
系统详细信息:
MacBookPro Retina 2012 年中期,16GB 内存,Yosemite10.10
Python 3.4.2
ipython2.3.1
PyCharm 社区版 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,而不是我的设置失败。因此,我正在修改此问题以询问是否有已知的解决方法。
PyCharm(包括最新的 v5 版本)在 OS X 下存在一个已知问题,这是由 Python 可以安装在 OS X 上的方式引起的.
大多数人使用 brew
安装 Python 2 和 3,这也取代了从命令行使用的默认 Python 解释器。尽管如此,默认的解释器和 pip
可执行文件也没有被 GUI 应用程序替换。
如果您想要更具体的答案,您必须正确记录您的环境:
- 从命令行执行
which -a python
- 从命令行执行
which -a pip
- 从内部 PyCharm 和控制台执行
print(sys.path)
和 print(os.env)
,并比较它们。
执行此操作后,您可能会发现加载了错误版本的模块。
我有一个关于 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')
此 将 打开带有标签 "Figure 1" 的 window。但是,没有出现任何情节,鼠标悬停在它上面时会切换到 SPOD(我在 Mac 上)。此时,我可以试试
In[4]: plt.show()
但是还是没有剧情出现。 但是,如果我这样做:
In[5]: plt.savefig('foo.png')
不仅用那个名字保存了一个图形,图 1 window 中还显示了该图。请注意,PyCharm 已将交互模式设置为打开,并且它已识别出我的后端是(应该是?)MacOS。
我在通用终端会话中通过 python 和 ipython 控制台使用了相同的过程,甚至通过 emacs,在所有情况下,情节都出现在调用 plt.plot()
行。不需要 plt.show()
调用。
的确,我什至可以通过PyCharm使用终端并获得想要的情节。一个答案是我应该只使用这些方法进行绘图并忽略 PyCharm。然而,假设我发现 PyCharm 的 "bells and whistles" 足够吸引我,我真的很想将它用作我的 IDE,但希望能够检查地块而不必经过plt.savefig()
麻烦(因为我不想保留我尝试的每一个情节)。
我也尝试过通过 plt.switch_backend()
切换后端。我已经尝试了列出的所有选项,所有这些选项都失败了,主要是因为没有安装某些软件包或在错误的系统上。我没有尝试安装任何东西来使用新的后端,所以我不知道另一个正确安装的后端是否可以解决这个问题。当然,更愿意尝试!
系统详细信息:
MacBookPro Retina 2012 年中期,16GB 内存,Yosemite10.10
Python 3.4.2
ipython2.3.1
PyCharm 社区版 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,而不是我的设置失败。因此,我正在修改此问题以询问是否有已知的解决方法。
PyCharm(包括最新的 v5 版本)在 OS X 下存在一个已知问题,这是由 Python 可以安装在 OS X 上的方式引起的.
大多数人使用 brew
安装 Python 2 和 3,这也取代了从命令行使用的默认 Python 解释器。尽管如此,默认的解释器和 pip
可执行文件也没有被 GUI 应用程序替换。
如果您想要更具体的答案,您必须正确记录您的环境:
- 从命令行执行
which -a python
- 从命令行执行
which -a pip
- 从内部 PyCharm 和控制台执行
print(sys.path)
和print(os.env)
,并比较它们。
执行此操作后,您可能会发现加载了错误版本的模块。