##// END OF EJS Templates
Adicion del metodo saveFigure() para guardar archivos de imagen de la clase Figure(). Se modifica los xaxis se muestran en formato datetime, falta hacer ajustes en los ticks de acuerdo al intervalo [xmin, xmax]
Adicion del metodo saveFigure() para guardar archivos de imagen de la clase Figure(). Se modifica los xaxis se muestran en formato datetime, falta hacer ajustes en los ticks de acuerdo al intervalo [xmin, xmax]

File last commit:

r209:8c431837892b
r209:8c431837892b
Show More
figure.py
261 lines | 7.3 KiB | text/x-python | PythonLexer
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 import numpy
Daniel Valdez
Se agrega el folder "graphics" que contiene figure.py y mpldriver.py...
r190 import mpldriver
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201
Daniel Valdez
Se agrega el folder "graphics" que contiene figure.py y mpldriver.py...
r190 class Figure:
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201
__driver = mpldriver
Miguel Valdez
Metodo destructor agregado a la clase Figure para desactivar el modo interactivo y mantener el gráfico.
r206 fig = None
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201
idfigure = None
wintitle = None
Daniel Valdez
En graphics:...
r192 width = None
height = None
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 nplots = None
axesObjList = []
WIDTH = None
HEIGHT = None
def __init__(self):
raise ValueError, "This method is not implemented"
Miguel Valdez
Metodo destructor agregado a la clase Figure para desactivar el modo interactivo y mantener el gráfico.
r206 def __del__(self):
self.__driver.closeFigure()
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 def getAxesObjList(self):
return self.axesObjList
def getSubplots(self):
raise ValueError, "Abstract method: This method should be defined"
def getScreenDim(self):
nrow, ncol = self.getSubplots()
width = self.WIDTH*ncol
height = self.HEIGHT*nrow
return width, height
def init(self, idfigure, nplots, wintitle):
Miguel Valdez
-Se agrego el perfil de potencia al grafico de espectros
r204
raise ValueError, "This method has been replaced with createFigure"
def createFigure(self, idfigure, wintitle):
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201
"""
Miguel Valdez
-Se agrego el perfil de potencia al grafico de espectros
r204 Crea la figura de acuerdo al driver y parametros seleccionados seleccionados.
Las dimensiones de la pantalla es calculada a partir de los atributos self.WIDTH
y self.HEIGHT y el numero de subplots (nrow, ncol)
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 Input:
Miguel Valdez
-Se agrego el perfil de potencia al grafico de espectros
r204 idfigure : Los parametros necesarios son
wintitle :
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 """
Daniel Valdez
Se agrega el folder "graphics" que contiene figure.py y mpldriver.py...
r190
self.idfigure = idfigure
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201
self.wintitle = wintitle
self.width, self.height = self.getScreenDim()
self.fig = self.__driver.createFigure(self.idfigure,
self.wintitle,
self.width,
self.height)
self.axesObjList = []
Daniel Valdez
Se agrega el folder "graphics" que contiene figure.py y mpldriver.py...
r190
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 def setDriver(self, driver=mpldriver):
self.__driver = driver
Daniel Valdez
Se agrega el folder "graphics" que contiene figure.py y mpldriver.py...
r190 def setTitle(self, title):
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201
self.__driver.setTitle(self.fig, title)
Daniel Valdez
Se agrega el folder "graphics" que contiene figure.py y mpldriver.py...
r190
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 def setWinTitle(self, title):
self.__driver.setWinTitle(self.fig, title=title)
Daniel Valdez
En esta version se ha implementado la clase para ploteo de espectros, a este grafico aun le falta agregar el perfil de potencia para cada canal.
r196
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 def setTextFromAxes(self, text):
raise ValueError, "Este metodo ha sido reemplazaado con el metodo setText de la clase Axes"
Daniel Valdez
Se agrega el folder "graphics" que contiene figure.py y mpldriver.py...
r190
def makeAxes(self, nrow, ncol, xpos, ypos, colspan, rowspan):
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201
raise ValueError, "Este metodo ha sido reemplazaado con el metodo addAxes"
def addAxes(self, *args):
"""
Input:
*args : Los parametros necesarios son
nrow, ncol, xpos, ypos, colspan, rowspan
"""
axesObj = Axes(self.fig, *args)
self.axesObjList.append(axesObj)
Daniel Valdez
Se agrega el folder "graphics" que contiene figure.py y mpldriver.py...
r190
Daniel Valdez
Adicion del metodo saveFigure() para guardar archivos de imagen de la clase Figure(). Se modifica los xaxis se muestran en formato datetime, falta hacer ajustes en los ticks de acuerdo al intervalo [xmin, xmax]
r209 def saveFigure(self, *args):
self.__driver.saveFigure(self.fig, *args)
Daniel Valdez
Se agrega el folder "graphics" que contiene figure.py y mpldriver.py...
r190 def draw(self):
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201
self.__driver.draw(self.fig)
Daniel Valdez
Se agrega el folder "graphics" que contiene figure.py y mpldriver.py...
r190
def run(self):
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201
raise ValueError, "This method is not implemented"
axesList = property(getAxesObjList)
Daniel Valdez
Se agrega el folder "graphics" que contiene figure.py y mpldriver.py...
r190
class Axes:
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201
__driver = mpldriver
fig = None
Daniel Valdez
Se agrega el folder "graphics" que contiene figure.py y mpldriver.py...
r190 ax = None
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 plot = None
Daniel Valdez
Se agrega el folder "graphics" que contiene figure.py y mpldriver.py...
r190
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 firsttime = None
Miguel Valdez
-Se agrego el perfil de potencia al grafico de espectros
r204 __showprofile = False
Daniel Valdez
Adicion de la clase RTIPlot
r207 __zmin = None
__zmax = None
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 def __init__(self, *args):
"""
Input:
*args : Los parametros necesarios son
fig, nrow, ncol, xpos, ypos, colspan, rowspan
"""
ax = self.__driver.createAxes(*args)
self.fig = args[0]
Daniel Valdez
Se agrega el folder "graphics" que contiene figure.py y mpldriver.py...
r190 self.ax = ax
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 self.plot = None
self.firsttime = True
def setText(self, text):
self.__driver.setAxesText(self.ax, text)
Daniel Valdez
Adicion del metodo saveFigure() para guardar archivos de imagen de la clase Figure(). Se modifica los xaxis se muestran en formato datetime, falta hacer ajustes en los ticks de acuerdo al intervalo [xmin, xmax]
r209 def setXAxisAsTime(self):
pass
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 def pline(self, x, y,
xmin=None, xmax=None,
ymin=None, ymax=None,
xlabel='', ylabel='',
title='',
**kwargs):
"""
Input:
x :
y :
xmin :
xmax :
ymin :
ymax :
xlabel :
ylabel :
title :
**kwargs : Los parametros aceptados son
ticksize
Miguel Valdez
-Se agrego el perfil de potencia al grafico de espectros
r204 ytick_visible
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 """
if self.firsttime:
if xmin == None: xmin = numpy.nanmin(x)
if xmax == None: xmax = numpy.nanmax(x)
if ymin == None: ymin = numpy.nanmin(y)
if ymax == None: ymax = numpy.nanmax(y)
self.plot = self.__driver.createPline(self.ax, x, y,
xmin, xmax,
ymin, ymax,
xlabel=xlabel,
ylabel=ylabel,
title=title,
**kwargs)
self.firsttime = False
return
self.__driver.pline(self.plot, x, y, xlabel=xlabel,
ylabel=ylabel,
title=title)
def pcolor(self, x, y, z,
xmin=None, xmax=None,
ymin=None, ymax=None,
zmin=None, zmax=None,
xlabel='', ylabel='',
Daniel Valdez
Adicion de la clase RTIPlot
r207 title='', rti = False,
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 **kwargs):
"""
Input:
x :
y :
x :
xmin :
xmax :
ymin :
ymax :
zmin :
zmax :
xlabel :
ylabel :
title :
**kwargs : Los parametros aceptados son
ticksize=9,
cblabel=''
Daniel Valdez
Adicion de la clase RTIPlot
r207 rti = True or False
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 """
if self.firsttime:
if xmin == None: xmin = numpy.nanmin(x)
if xmax == None: xmax = numpy.nanmax(x)
if ymin == None: ymin = numpy.nanmin(y)
if ymax == None: ymax = numpy.nanmax(y)
if zmin == None: zmin = numpy.nanmin(z)
if zmax == None: zmax = numpy.nanmax(z)
Daniel Valdez
Adicion de la clase RTIPlot
r207
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 self.plot = self.__driver.createPcolor(self.ax, x, y, z,
xmin, xmax,
ymin, ymax,
zmin, zmax,
xlabel=xlabel,
ylabel=ylabel,
title=title,
**kwargs)
self.firsttime = False
Daniel Valdez
Adicion de la clase RTIPlot
r207 if self.__zmin == None: self.__zmin = zmin
if self.__zmax == None: self.__zmax = zmax
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 return
Daniel Valdez
Adicion de la clase RTIPlot
r207
if rti:
self.__driver.addpcolor(self.ax, x, y, z, self.__zmin, self.__zmax)
return
self.__driver.pcolor(self.plot, z, xlabel=xlabel, ylabel=ylabel, title=title)