【问题标题】:Plotting with pyqtgraph without displaying用 pyqtgraph 绘图而不显示
【发布时间】:2019-12-10 10:42:55
【问题描述】:

我正在尝试从 matplotlib 转移到使用 pyqtgraph 进行绘图,因为它被吹捧的能够更快地渲染和保存图像。在尝试在具有多处理器的集群上执行此操作时,我遇到了以下问题:

QStandardPaths:XDG_RUNTIME_DIR 未设置,默认为 '/tmp/runtime-user' qt.qpa.screen: QXcbConnection: 无法连接 to display 无法连接到任何 X 显示器。

如何避免显示绘图,并将其直接保存到文件中?这是我对代码的尝试:

from pyqtgraph.Qt import QtGui, QtCore
import pyqtgraph as pg
import pyqtgraph.exporters

#app = QtGui.QApplication([])
#view = pg.GraphicsView()
l = pg.GraphicsWindow()
#view.setCentralItem(l)
#view.show()
#view.setWindowTitle('GraphicsLayout')
#view.resize(1000,1600)


def plotlayout(lines):
    p_res={}
    p_data={}
    for rows in rows:
        p_res[row]={}
        p_data[row]={}       
        for col in cols:
            l2=l.addLayout()
            p_res[row][col]=l2.addPlot()
            p_res[row][col].hideAxis('bottom')
            l2.nextRow()
            p_data[row][col]=l2.addPlot()
            l.nextColumn()
        l.nextRow()
    return p_res, p_data    
pl = plotlayout(lines) 
pl[0].plot([1,3,5,9,7,8],[2,3,3,5,6,8])                
pl[1].plot([1,3,5,9,7,8],[2,22,3,45,6,8])
if __name__ == '__main__':
    import sys
    if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
        QtGui.QApplication.instance().exec_()
        QtGui.QApplication.exit()
        QtGui.QApplication.quit()
        QtGui.QApplication.quitOnLastWindowClosed()
        QtGui.QApplication.closeAllWindows()
exporter = pg.exporters.ImageExporter(l.scene())
exporter.export('fits.ps')

我已经在我的个人笔记本电脑上对此进行了测试,它运行良好。

【问题讨论】:

  • 你在哪里安装了pyqtgraph?你的操作系统是什么?你的桌面环境是什么?你有安装 PyQt5 吗?
  • 取消注释此行#app = QtGui.QApplication([])
  • LSB 版本::base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing- 4.0-amd64:printing-4.0-noarch 分销商 ID:RedHatEnterpriseServer 描述:Red Hat Enterprise Linux Server 版本 6.10 (Santiago) 版本:6.10 代号:Santiago;我已经使用 conda 安装了。是的,PyQt5 已安装。
  • 您有窗口管理器或桌面系统吗?您如何连接到您的服务器:您使用 SSH 还是其他协议?

标签: python python-2.7 pyqt pyqt5 pyqtgraph


【解决方案1】:

如果您想在不使用桌面环境/窗口管理器的情况下运行 GUI,可能的解决方案是使用 Xvfb

【讨论】:

    猜你喜欢
    • 2019-03-27
    • 2016-11-15
    • 2017-07-02
    • 2018-04-23
    • 2018-07-19
    • 2019-02-02
    • 2018-03-05
    • 2018-06-11
    • 2019-03-03
    相关资源
    最近更新 更多