使用 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 显示在窗口的左下角。的主要内容,如果未能解决你的问题,请参考以下文章
带有 PySide 2 和 QtDesigner 的 pyqtgraph