【问题标题】:PyCharm doesn’t display plots and is very slowPyCharm 不显示绘图并且速度很慢
【发布时间】:2019-05-09 04:34:41
【问题描述】:

我是第一次尝试 PyCharm,但无法显示我的绘图。你能告诉我我错过了什么吗?我在同一篇文章中将 2 个问题分组,因为我觉得它实际上是同一个错误,但我不确定。我在 mac OS 10.11.6 (El Capitan) 下使用 python 3.7,不想升级。

问题:使用相同的代码,在 PyCharm 中打开一个 python 控制台并制作一个基本的绘图工作但非常慢(下面的基本示例需要几秒钟,为什么?),而直接使用 PyCharm 运行它(点击绿色三角形)没有显示任何东西:没有情节,没有消息。为什么?

代码示例:

x = np.arange(10)
y = np.arange(10)+10
pg.plot(x,y)

在 python 控制台中,几秒钟后,这给出了预期的情节。使用“运行”按钮,它什么也没有。注意我在上面 3 行之前复制粘贴了“启动”代码,即:

import os
import numpy as np
os.environ['PYQTGRAPH_QT_LIB'] = 'PyQt5'
import pyqtgraph as pg

“运行”控制台只是说:

/Users/<username>/anaconda/envs/py37/bin/python /Users/<username>/work/perso/sof/test.py
Process finished with exit code 0

下午 1:15 更新

根据 Andrew 的评论得出的想法,我对 matplotlib 进行了同样的尝试(与 pyqtgraph 相比,这通常是一种痛苦)并且它有效:

import numpy as np
import matplotlib.pyplot as plt
x = np.arange(10)
y = np.arange(10)+10
plt.plot(x,y)
plt.show()

给出了情节,但我想使用pyqtgraph(添加在标签中),通常上面3行就足够了:不需要'show'命令。


下午 3:20 更新

我也用 plotWidget 尝试了同样的方法,但它显示了同样的问题。以下代码:

import numpy as np
x = np.arange(10)
y = np.arange(10)+10
import os
import pyqtgraph as pg
os.environ['PYQTGRAPH_QT_LIB'] = 'PyQt5'
plotWidget = pg.plot(title='test')
plotWidget.plot(x,y)
plotWidget.plot(x,2*y)
plotWidget.plot(x,3*y)

在 python 控制台中复制粘贴时给出预期的 3 行图,但“运行”按钮或快捷方式(相同的“运行”控制台)没有任何反应。

【问题讨论】:

  • 你需要打电话给plt.show()吗?
  • @Andrew:通常不会。但我会尝试使用 matplotlib,这可能需要一个“显示”命令。
  • 您是否尝试过使用PlotWidgetpyqtgraph.org/documentation/plotting.html
  • 为什么投反对票?

标签: python pycharm pyqtgraph


【解决方案1】:

Have a look at the pyqtgrap examples 将第一个示例复制并粘贴到 pycharm 中,它工作得很好。 (带有 MacOS Mojave 的 Python 3.7)

您需要启动 pyqt 事件循环才能看到您绘制的任何内容

if __name__ == '__main__':
import sys
if sys.flags.interactive != 1 or not hasattr(QtCore, 'PYQT_VERSION'):
    pg.QtGui.QApplication.exec_()

将此添加到脚本的末尾应该可以解决绘图问题。关于控制台的问题,pycharm 中的控制台默认是 iPython,所以你需要运行

%gui qt5  

为了用 pyqtgraph 绘图,但在我的系统上出现错误。

也许您可以考虑使用different IDE such as spyder。我从那里测试了绘图,效果很好。

【讨论】:

  • no: 相同的行为 -> 'python 控制台' 中的复制粘贴工作正常,但文件中的 cpy 粘贴然后'运行'(使用键盘快捷键或绿色三角形) 尽管没有图形输出,但除了消息“进程以退出代码 0 完成”外,什么也没有给出。关于 spyder:计划正好相反,到目前为止我一直在使用 spyder,但想尝试一个 pycharm 替代品......到目前为止,我认为 spyder 更好
  • 你使用了完整的例子吗?包括上面的代码sn-p?
猜你喜欢
  • 2011-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-25
  • 2014-05-06
  • 1970-01-01
  • 2013-12-27
  • 2012-02-25
相关资源
最近更新 更多