我想將matplotlib嵌入到PyQt4 + Python 2.7應用程序中,這樣我就可以在我的UI中可視化圖像(即2D)數據。我想利用一些matplotlib的功能,如色彩映射表,縮放,等我發現網上一些教程但那是我的問題是最接近的SO問題如下:在PyQt4中嵌入matplotlib
Embedding matplotlib in pyqt4 using imshow
像作者一樣,我也想使用「imshow(...)」。通過網上下一個教程,我可以在我作爲一個QWidget UI嵌入matplotlib如下:
self.mainImage = MatPlotLibImage()
self.setWidget(self.mainImage)
此:
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import numpy as np
from matplotlib.figure import Figure
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
class matPlotLibImage(FigureCanvas):
def __init__(self):
self.fig = Figure()
self.axes = self.fig.add_subplot(111)
self.x = np.arange(0.0, 3.0, 0.01)
self.y = np.cos(2*np.pi*self.x)
self.axes.plot(self.x, self.y)
super(MatPlotLibImage, self).__init__(self.fig)
在我QDockWidget派生類的代碼,然後可以通過嵌入上述matplotlib部件按預期工作並顯示一個簡單的情節。但是,現在我想顯示用numpy數組表示的圖像數據。我在網上看到的所有例子都是用下面的變體:
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np
img = mpimg.imread("someImage.png")
imgplot = plt.imshow(img)
我的問題是:我如何結合這兩種方法,這樣我可以用「imshow()」,但嵌入式像我一樣的簡單的情節?先謝謝你。說明:嚴格來說,我使用'imshow(whatever)'並不重要,我只是對在嵌入式matplotlib小部件中顯示圖像數據感興趣(在一個numpy數組中)。但是,imshow確實有一些我想要利用的有用的東西。
謝謝。請參閱下面的評論。 – LKeene