PyCharm 无法正确打开 matplotlib 绘图

问题描述 投票:0回答:2

我有一个 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。然而,假设我发现 PyCharm 的“花里胡哨”足够吸引人,我真的很想将它用作我的 IDE,但希望能够检查绘图,而不必经历

plt.savefig()
麻烦(因为我不想保留我尝试的每一个情节)。

我也尝试过通过

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

MacBookPro Retina 2012 年中,16GB 内存,Yosemite 10.10

Python 3.4.2

ipython 2.3.1

PyCharm 社区版 4.0.4

请注意,我已经审查并尝试了以下问题的修复变体:

Python 绘图无法打开

如何在 matlab/python 中切换后端

PyCharm + Matplotlib?

Matplotlib 图形卡住(灰色窗口)

matplotlib 不显示我的绘图,尽管我调用 pyplot.show()

编辑

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

python matplotlib plot pycharm
2个回答
2
投票

大多数人确实使用

brew

安装 Python 2 和 3,这也替换了从命令行使用的默认 Python 解释器。尽管如此,GUI 应用程序的默认解释器和

pip
可执行文件也没有被替换。

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

从命令行

执行
    which -a python
  • 从命令行
    执行
  • which -a pip
  • 从 PyCharm 和控制台内部执行 
    print(sys.path)
  • print(os.env)
    ,然后比较它们。
    
    
    通过这样做,您可能会意识到加载了错误版本的模块。

对于那些仍然遇到此问题的人。

0
投票
尝试安装

QtAgg

pip install pyqt6

然后导入 
matplotlib

并使用

QtAgg

,如下所示:
import matplotlib.pyplot as plt
import matplotlib
matplotlib.use('QtAgg')

希望这能解决问题。
    

© www.soinside.com 2019 - 2024. All rights reserved.