##// END OF EJS Templates
se agregan variables para salvar graficos en disco para el ultimo bloque de datos
se agregan variables para salvar graficos en disco para el ultimo bloque de datos

File last commit:

r169:661bb8af254a
r457:2445b97595f3
Show More
SpectraPlot2.py
171 lines | 4.6 KiB | text/x-python | PythonLexer
import numpy
import sys
import schainPlot
class RTIFigure(schainPlot.Figure):
__driverObj = None
__isDriverOpen = False
__isFigureOpen = False
__isConfig = False
__xw = None
__yw = None
xmin = None
xmax = None
minvalue = None
maxvalue = None
id = None
nframes = None
wintitle = wintitle
colormap = None
driver = None
overplot = None
frameObjList = []
def __init__(self, id, wintitle, xw=600, yw=800, overplot=0, driver=None, colormap='br_green', *showGraphs):
self.id = id
self.wintitle = wintitle
self.colormap = colormap
self.driver = driver
self.overplot = overplot
self.showGraphs = showGraphs
showColorbar = showGraphs[0]
showPowerprofile = showGraphs[1]
self.__driverObj = Driver(id, wintitle,xw,yw,overplot,driver,colormap,showColorbar,showPowerprofile)
def __openDriver(self):
self.__driverObj.openDriver(self.id, self.wintitle, self.xw, self.yw)
def __openFigure(self):
nrows, ncolumns = self.getSubplots()
self.__driverObj.openFigure()
self.__driverObj.setSubPlots(nrows, ncolumns)
def __isOutOfXRange(self, x):
pass
def __changeXRange(self, x):
pass
def __createFrames(self):
for frame in range(self.nframes):
frameObj = Frame(idframe = frame,
showGraph1 = self.showGraph1,
showGraph2 = self.showGraph2
)
self.frameObjList.append(frameObj)
def plot1DArray(self, data1D, x=None, channelList=None, xmin=None, xmax=None, minvalue=None, maxvlaue=None, save=False, gpath='./'):
nx, ny = data1D.shape
if channelList == None:
chanellList = range(nx)
if x == None:
x = numpy.arange(data1D.size)
if not(self.__isDriverOpen):
self.__openDriver()
self.__isDriverOpen = True
if not(self.__isConfig):
if self.xmin == None: xmin = numpy.min(x)
if self.xmax == None: xmax = numpy.max(x)
if self.minvalue == None: minvalue = numpy.min(data1D)
if self.maxvalue == None: maxvalue = numpy.max(data1D)
self.__createFrames()
self.__isConfig = True
if not(self.__isOutOfXRange(x)):
self.__changeXRange(x)
if self.__isFigureOpen:
self.__driverObj.closePage()
self.__isFigureOpen = False
if not(self.__isFigureOpen):
self.__openFigure()
for channel in channelList:
frameObj = self.frameObjList[channel]
frameObj.init(xmin=xmin,
xmax=xmax,
minvalue=minvalue,
maxvalue=maxvalue)
self.__isFigureOpen = True
for channel in channelList:
dataCh = data1D[channel]
frameObj = self.frameObjList[channel]
frameObj.clearData()
frameObj.plot(dataCh)
frameObj.refresh()
if not(self.overplot):
self.__driverObj.closeFigure()
self.__isFigureOpen = False
def plot2DArray(self, x, y, data2D, xmin=None, xmax=None, ymin=None, ymax=None, minvalue=None, maxvalue=None, save=False, gpath='./'):
if not(self.__isCOpen):
self.__createFrames()
self.__openFigure()
self.__isOpen = True
if not(self.__isConfig):
self.setRange(xmin=xmin, xmax=xmax, ymin=ymin, ymax=ymax, minvalue=minvalue, maxvalue=maxvalue)
self.__isConfig = True
for channel in channelList:
dataCh = dataArray[channel]
frameObj = frameObjList[channel]
frameObj.plot(dataCh)
def saveFigure(self, filename):
pass
def getSubplots(self):
raise ValueError, ''
class RTIFrame(schainPlot.Frame):
def __init__(self):
pass
def setup(self):
pass
class RTIPlot(schainPlot.Plot):
def __init__(self):
pass
def setup(self):
pass