我正在PyQt中编写一个应用程序,在那里我用matplotlib显示一些图形。为此,我使用以下代码:
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg
import matplotlib.figure as fig
self.IntFig = fig.Figure()
self.IntBeamCanvas = FigureCanvasQTAgg(self.IntFig)
self.AxesIntInit = self.IntFig.add_subplot(111)
self.AxesIntInit.hold(False)
self.AxesIntInit.imshow(self.Int,extent =[-xx/2+xx/N,xx/2,-xx/2+xx/N,xx/2])
self.IntBeamCanvas.draw()
稍后在代码中我设法保存使用以下代码创建的数字:
fname = QtGui.QFileDialog.getSaveFileName(self,'Save Intensity','C:' )
self.IntFig.savefig(str(fname))
但这只能保存数字(我的意思是它的轴)。如果我只想保存数据
,该怎么办?self.Int
显示了什么?我知道pyplot.imsave方法,但不知道如何在这里使用它,因为我不使用pyplot而是图。图。
有没有人有想法?
答案 0 :(得分:0)
您可以按照以下方法保存图像:
import numpy as np
import pylab as pl
y, x = np.ogrid[-1:1:50j, -1:1:100j]
z = np.sqrt(x*x + y*y)
im = pl.imshow(z)
img = im.make_image()
h, w, s = img.as_rgba_str()
a = np.fromstring(s, dtype=np.uint8).reshape(h, w, 4)
pl.imsave("tmp.png", a)
保存的图片: