使用 PyQtGraph 我的 Surface Plot 显示在窗口的左下角。

Posted

技术标签:

【中文标题】使用 PyQtGraph 我的 Surface Plot 显示在窗口的左下角。【英文标题】:Using PyQtGraph my Surface Plot displays in the bottom left quarter of the window. 【发布时间】:2018-01-15 04:46:12 【问题描述】:

这是我的代码。

from pyqtgraph.Qt import QtGui
import numpy as np
import pyqtgraph.opengl as gl
from netCDF4 import Dataset
import sys

def main():

    app = QtGui.QApplication(sys.argv)
    w=gl.GLViewWidget()
    w.show()
    w.setCameraPosition(distance=150)

    #just my data
    data=Dataset('200707.nc')


    prec=data.variables['Prec'][5,:59,:59]

    p = gl.GLSurfacePlotItem(z=prec[:] ,shader='heightColor')
    p.shader()['colorMap'] = np.array([0.2, 2, 0.5, 0.2, 1, 1, 0.2, 0, 2])


    w.addItem(p)
    sys.exit(app.exec_())

if __name__ == '__main__':

    main()

我认为问题可能在于库与我的 Mac 像素布局的交互。真的不确定它可能是什么或如何解决它。我应该考虑使用不同的程序吗?

【问题讨论】:

您能否提供正确的问题描述?究竟是什么问题?代码应该如何表现? @ImportanceOfBeingErnest 问题是该图位于窗口左下象限的中心,而不是中心。 i.imgur.com/H4WoMfn.png @ImportanceOfBeingErnest 我在运行 MacOS Sierra 10.12.6 和 Python 3.6 的 15 英寸 MacBook Pro 2016 上遇到了同样的问题。要重现它,请获取 Mac,sudo pip3 install PyOpenGL pyqtgragh 并按照文档中的说明运行示例。也就是说,import pyqtgraph.examples; pyqtgraph.examples.run() 在 Python 控制台中。然后,在出现的窗口中,选择任何一个“3D Graphcs”示例,您会看到图形并没有像应有的那样占据整个窗口,而是只占据左下象限。 我的朋友在 Linux 上试过,没问题,另一个朋友在另一台 Mac 上试过,同样的问题。看起来像是 Mac 的问题。 我没有可用的mac,以后肯定也不会用了;因此,我在这里无能为力。但是@Ray,如果您理解了这个问题,也许您可​​以对其进行编辑,使问题变得更加明显。 【参考方案1】:

我在我的 Macbook Pro 上遇到了同样的问题。我认为您安装的 PyQtGraph 版本中的某些内容不允许在您的(和大多数 Mac)设备上进行适当的缩放。

我并没有真正搞砸太多,但为了解决这个问题,我在 Anaconda 中创建了一个新的 Python 环境(以确保不会导致任何其他依赖项)并安装了可通过 Conda 获得的 PyQtGraph 版本。我不知道其他来源的其他版本是否也能正常工作,但这个似乎对我有用。

如果您的计算机上安装了 Anaconda,只需执行以下操作:

创建一个新的 Python 环境。 conda create -n env_name python=py_ver anaconda 来源到您的环境。 source activate env_name 安装 PyQtGraph。 conda install -c anaconda pyqtgraph

现在,当您运行程序时,它应该可以正常扩展。

【讨论】:

我也看到了这个问题,但是制作一个新的环境并没有为我解决这个问题......【参考方案2】:

在 osx 上安装 vispy 后遇到这样的问题。原来我只需要安装最新版本的 pyqt5,问题就消失了。

pip install pyqt5

【讨论】:

以上是关于使用 PyQtGraph 我的 Surface Plot 显示在窗口的左下角。的主要内容,如果未能解决你的问题,请参考以下文章

使用PyQtGraph绘制图形

pyqtgraph 轴未正确显示

带有 PySide 2 和 QtDesigner 的 pyqtgraph

在 PyQt4 #2 中使用 PyQtGraph 进行实时绘图

如何在 PyQTgraph 中显示帧率?

即使设备断开连接,使用 PyQtGraph 的实时绘图仍在绘制