python - 程序执行时pyqtgraph plot不显示

标签 python plot python-idle pyqtgraph

我正在尝试学习如何使用 pyqtgraph 并尝试运行上述文档中给出的以下第一个简单示例:

#!/usr/bin/env python3

import pyqtgraph as pg

import numpy as np

x = np.random.normal(size=1000)

y = np.random.normal(size=1000)

pg.plot(x,y,pen=None,symbol='o',title='first graph')

我在带有 Raspbian Stretch 的 Raspberry Pi 3 上使用 python 3.5.3。

如果我在 Thonny 或 IDLE 中运行上述程序,程序运行时没有任何错误但不显示任何输出。

同样,如果我在 Linux 命令提示符下通过简单地调用程序名称(我已使用 chmod +x 使其可执行)或通过键入 python3 后跟程序名称来运行该程序,仍然它没有显示任何内容。

但是,如果我在 Linux 提示符下键入 python3 并获得 python 提示符,然后逐行运行程序中的每一行,那么它会按预期在标题为“第一图”的窗口中显示一个散点图。

有人可以让我知道在通过 Thonny 或 IDLE 运行时或通过将其作为程序调用时,我需要做什么来获取显示图形的代码吗?

谢谢。

最佳答案

每个 GUI 都需要一个事件循环,在您的情况下您没有创建它,在下面的代码中我展示了如何做到这一点:

#!/usr/bin/env python3

import pyqtgraph as pg
from pyqtgraph.Qt import QtCore, QtGui
import numpy as np


x = np.random.normal(size=1000)
y = np.random.normal(size=1000)
pg.plot(x,y,pen=None,symbol='o',title='first graph')


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

enter image description here

注意:不要使用任何 IDE,因为许多不能正确处理事件循环,从终端执行它。

关于python - 程序执行时pyqtgraph plot不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52939740/

相关文章:

python - 使用 'is' 在 IDLE 和 python shell 中的不同结果

python - While 循环问题 - Python

python:使用字符串输入的调度方法

python - 如果可能的话,如何使用函数参数作为 npy 方法

python - 你如何改变pandas box plot的Y轴的传播?

r - 如何增加 R 中 ggplot2 箱线图之间的间距?

python - 运行一个非常简单的 Python 程序时出现问题

python - 将离线文档链接到 IDLE - Linux

python - 'RandomOverSampler' 对象没有属性 '_validate_data'

r - 用不同的颜色覆盖两个随机数图