[英]Plot numpy array built from a .tiff image using pyqtplot
我正試圖在pyqtgraph中繪制一個tiff圖像。
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_()
我得到了錯誤
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)返回(788,744)。
我在想我的numpy數組是錯誤的形式,或者我使用了錯誤的pyqtgraph函數,但我不熟悉其中任何一個都知道下一步要做什么。
我想你想要pyqtgraph.image 。 例如,這是一個修改過的腳本版本(我安裝了PySide):
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_()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.