Question

I'm trying to plot a tiff image in pyqtgraph.

import numpy as np
import gdal
import pyqtgraph as pg
from PyQt4 import QtCore

gd = gdal.Open('myImage.tif')
data = np.array(gd.GetRasterBand(1).ReadAsArray())
pg.plot(data, title="my picture")

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

Im getting the error

Traceback (most recent call last):
  File "C:/Users/justin/PycharmProjects/pyqtgraph_examples/geotiff.py", line 18, in <module>
    pg.plot(data, title="my picture")
  File "C:\Python33\lib\site-packages\pyqtgraph\__init__.py", line 295, in plot
    w.plot(*args, **dataArgs)
  File "C:\Python33\lib\site-packages\pyqtgraph\graphicsItems\PlotItem\PlotItem.py", line 639, in plot
    item = PlotDataItem(*args, **kargs)
  File "C:\Python33\lib\site-packages\pyqtgraph\graphicsItems\PlotDataItem.py", line 165, in __init__
    self.setData(*args, **kargs)
  File "C:\Python33\lib\site-packages\pyqtgraph\graphicsItems\PlotDataItem.py", line 341, in setData
    dt = dataType(data)
  File "C:\Python33\lib\site-packages\pyqtgraph\graphicsItems\PlotDataItem.py", line 679, in dataType
    raise Exception('array shape must be (N,) or (N,2); got %s instead' % str(obj.shape))
Exception: array shape must be (N,) or (N,2); got (788, 744) instead

print(data.size) returns (788,744).

I'm thinking my numpy array is in the wrong form or I'm using the wrong pyqtgraph function but I'm not that familiar with either to know what to try next.

Était-ce utile?

La solution

I think you want pyqtgraph.image. For example, here's a modifed version of your script (I have PySide installed):

import numpy as np
import pyqtgraph as pg
from PySide import QtCore
from scipy.ndimage import gaussian_filter


data = np.random.beta(0.5, 3, size=(500, 500))
data = gaussian_filter(data, sigma=(12, 3))

pg.image(data, title="my picture")

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

enter image description here

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top