##// END OF EJS Templates
Cambios realizados para adaptar los valores de Cohencia en un rango elegido por el usuario, por defecto de 0-1.
Cambios realizados para adaptar los valores de Cohencia en un rango elegido por el usuario, por defecto de 0-1.

File last commit:

r398:436530070e31
r398:436530070e31
Show More
mpldriver.py
382 lines | 10.8 KiB | text/x-python | PythonLexer
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 import numpy
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 import datetime
Daniel Valdez
Adicion del factor de normalizacion en la clase Spectra....
r245 import sys
Daniel Valdez
Se agrega el folder "graphics" que contiene figure.py y mpldriver.py...
r190 import matplotlib
Miguel Valdez
Se modifico la forma de calcular la phase de la coherencia
r264
if 'linux' in sys.platform:
matplotlib.use("TKAgg")
if 'darwin' in sys.platform:
Daniel Valdez
Cambios realizados para adaptar los valores de Cohencia en un rango elegido por el usuario, por defecto de 0-1.
r398 matplotlib.use("GTKAgg")
Miguel Valdez
Se modifico la forma de calcular la phase de la coherencia
r264
Daniel Valdez
Se agrega el folder "graphics" que contiene figure.py y mpldriver.py...
r190 import matplotlib.pyplot
Miguel Valdez
Se modifico la forma de calcular la phase de la coherencia
r264 from mpl_toolkits.axes_grid1 import make_axes_locatable
Miguel Valdez
-Se agrego la funcionalidad de replotear el grafico de RTI, ademas de los parametros timerange, xmin, xmax...
r210 from matplotlib.ticker import *
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
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 ###########################################
#Actualizacion de las funciones del driver
###########################################
Daniel Valdez
Optimizacion de graficos RTI y CoherenMap, aun no se aplican los cambios a las otras clases de ploteo....
r395 def createFigure(id, wintitle, width, height, facecolor="w", show=True):
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201
matplotlib.pyplot.ioff()
Daniel Valdez
Optimizacion de graficos RTI y CoherenMap, aun no se aplican los cambios a las otras clases de ploteo....
r395 fig = matplotlib.pyplot.figure(num=id, facecolor=facecolor)
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 fig.canvas.manager.set_window_title(wintitle)
fig.canvas.manager.resize(width, height)
matplotlib.pyplot.ion()
Daniel Valdez
Se agrega parametro de entrada 'show', por defecto (True) muestra la figuras, caso contrario (False) matplotlib no muestra la figuras
r342 if show:
matplotlib.pyplot.show()
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201
return fig
Daniel Valdez
Se agrega parametro de entrada 'show', por defecto (True) muestra la figuras, caso contrario (False) matplotlib no muestra la figuras
r342 def closeFigure(show=True):
Miguel Valdez
Metodo destructor agregado a la clase Figure para desactivar el modo interactivo y mantener el gráfico.
r206
matplotlib.pyplot.ioff()
Daniel Valdez
Se agrega parametro de entrada 'show', por defecto (True) muestra la figuras, caso contrario (False) matplotlib no muestra la figuras
r342 if show:
matplotlib.pyplot.show()
Miguel Valdez
Metodo destructor agregado a la clase Figure para desactivar el modo interactivo y mantener el gráfico.
r206
Daniel Valdez
Adicion de la clase RTIPlot
r207 return
Miguel Valdez
Metodo destructor agregado a la clase Figure para desactivar el modo interactivo y mantener el gráfico.
r206
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(fig, filename):
Miguel Valdez
Optimizacion del driver para matplotlib. Activacion y descativacion del modo interactivo al crear figures y axes
r244
matplotlib.pyplot.ioff()
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 fig.savefig(filename)
Miguel Valdez
Optimizacion del driver para matplotlib. Activacion y descativacion del modo interactivo al crear figures y axes
r244 matplotlib.pyplot.ion()
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
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 def setWinTitle(fig, title):
fig.canvas.manager.set_window_title(title)
def setTitle(fig, title):
fig.suptitle(title)
def createAxes(fig, nrow, ncol, xpos, ypos, colspan, rowspan):
Miguel Valdez
Optimizacion del driver para matplotlib. Activacion y descativacion del modo interactivo al crear figures y axes
r244 matplotlib.pyplot.ioff()
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 matplotlib.pyplot.figure(fig.number)
axes = matplotlib.pyplot.subplot2grid((nrow, ncol),
(xpos, ypos),
colspan=colspan,
rowspan=rowspan)
Miguel Valdez
Optimizacion del driver para matplotlib. Activacion y descativacion del modo interactivo al crear figures y axes
r244
matplotlib.pyplot.ion()
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 return axes
def setAxesText(ax, text):
ax.annotate(text,
xy = (.1, .99),
xycoords = 'figure fraction',
horizontalalignment = 'left',
verticalalignment = 'top',
fontsize = 10)
def printLabels(ax, xlabel, ylabel, title):
ax.set_xlabel(xlabel, size=11)
ax.set_ylabel(ylabel, size=11)
ax.set_title(title, size=12)
Miguel Valdez
-Se agrego el perfil de potencia al grafico de espectros
r204 def createPline(ax, x, y, xmin, xmax, ymin, ymax, xlabel='', ylabel='', title='',
ticksize=9, xtick_visible=True, ytick_visible=True,
nxticks=4, nyticks=10,
grid=None):
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201
Miguel Valdez
-Se agrego el perfil de potencia al grafico de espectros
r204 """
Input:
grid : None, 'both', 'x', 'y'
"""
Miguel Valdez
Optimizacion del driver para matplotlib. Activacion y descativacion del modo interactivo al crear figures y axes
r244
matplotlib.pyplot.ioff()
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 ax.set_xlim([xmin,xmax])
ax.set_ylim([ymin,ymax])
printLabels(ax, xlabel, ylabel, title)
Miguel Valdez
-Se agrego el perfil de potencia al grafico de espectros
r204 ######################################################
Daniel Valdez
En el metodo createPline se descomenta una seccion del codigo para configurar los xticks del grafico
r371 if (xmax-xmin)<=1:
xtickspos = numpy.linspace(xmin,xmax,nxticks)
xtickspos = numpy.array([float("%.1f"%i) for i in xtickspos])
ax.set_xticks(xtickspos)
else:
Daniel Valdez
Cambios realizados para adaptar los valores de Cohencia en un rango elegido por el usuario, por defecto de 0-1.
r398 # xtickspos = numpy.arange(nxticks)*int((xmax-xmin)/(nxticks)) + int(xmin)
xtickspos = numpy.arange(nxticks)*float(xmax-xmin)/float(nxticks) + int(xmin)
Daniel Valdez
En el metodo createPline se descomenta una seccion del codigo para configurar los xticks del grafico
r371 ax.set_xticks(xtickspos)
for tick in ax.get_xticklabels():
tick.set_visible(xtick_visible)
for tick in ax.xaxis.get_major_ticks():
tick.label.set_fontsize(ticksize)
Miguel Valdez
-Se agrego el perfil de potencia al grafico de espectros
r204
######################################################
for tick in ax.get_yticklabels():
tick.set_visible(ytick_visible)
for tick in ax.yaxis.get_major_ticks():
tick.label.set_fontsize(ticksize)
Miguel Valdez
Optimizacion del driver para matplotlib. Activacion y descativacion del modo interactivo al crear figures y axes
r244
ax.plot(x, y)
Miguel Valdez
Se mejora el metodo para grabar graficos de RTI y Spectra....
r212 iplot = ax.lines[-1]
Miguel Valdez
-Se agrego el perfil de potencia al grafico de espectros
r204
######################################################
Miguel Valdez
Se mejora el metodo para grabar graficos de RTI y Spectra....
r212 if '0.' in matplotlib.__version__[0:2]:
print "The matplotlib version has to be updated to 1.1 or newer"
return iplot
if '1.0.' in matplotlib.__version__[0:4]:
print "The matplotlib version has to be updated to 1.1 or newer"
return iplot
Miguel Valdez
-Se agrego el perfil de potencia al grafico de espectros
r204 if grid != None:
ax.grid(b=True, which='major', axis=grid)
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 matplotlib.pyplot.tight_layout()
Miguel Valdez
Optimizacion del driver para matplotlib. Activacion y descativacion del modo interactivo al crear figures y axes
r244 matplotlib.pyplot.ion()
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 return iplot
Miguel Valdez
Optimizacion del driver para matplotlib. Activacion y descativacion del modo interactivo al crear figures y axes
r244 def set_linedata(ax, x, y, idline):
ax.lines[idline].set_data(x,y)
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 def pline(iplot, x, y, xlabel='', ylabel='', title=''):
ax = iplot.get_axes()
printLabels(ax, xlabel, ylabel, title)
Daniel Valdez
Se agrega el metodo deflip a jroprocessing.py....
r239 set_linedata(ax, x, y, idline=0)
def addpline(ax, x, y, color, linestyle, lw):
Miguel Valdez
Optimizacion del driver para matplotlib. Activacion y descativacion del modo interactivo al crear figures y axes
r244
Daniel Valdez
Se agrega el metodo deflip a jroprocessing.py....
r239 ax.plot(x,y,color=color,linestyle=linestyle,lw=lw)
Miguel Valdez
Optimizacion del driver para matplotlib. Activacion y descativacion del modo interactivo al crear figures y axes
r244
def createPcolor(ax, x, y, z, xmin, xmax, ymin, ymax, zmin, zmax,
xlabel='', ylabel='', title='', ticksize = 9,
colormap='jet',cblabel='', cbsize="5%",
XAxisAsTime=False):
Daniel Valdez
Se agrega el metodo deflip a jroprocessing.py....
r239
Miguel Valdez
Optimizacion del driver para matplotlib. Activacion y descativacion del modo interactivo al crear figures y axes
r244 matplotlib.pyplot.ioff()
Daniel Valdez
Se agrega el metodo deflip a jroprocessing.py....
r239
Miguel Valdez
Optimizacion del driver para matplotlib. Activacion y descativacion del modo interactivo al crear figures y axes
r244 divider = make_axes_locatable(ax)
ax_cb = divider.new_horizontal(size=cbsize, pad=0.05)
fig = ax.get_figure()
fig.add_axes(ax_cb)
ax.set_xlim([xmin,xmax])
ax.set_ylim([ymin,ymax])
printLabels(ax, xlabel, ylabel, title)
imesh = ax.pcolormesh(x,y,z.T, vmin=zmin, vmax=zmax, cmap=matplotlib.pyplot.get_cmap(colormap))
cb = matplotlib.pyplot.colorbar(imesh, cax=ax_cb)
cb.set_label(cblabel)
# for tl in ax_cb.get_yticklabels():
# tl.set_visible(True)
for tick in ax.yaxis.get_major_ticks():
tick.label.set_fontsize(ticksize)
for tick in ax.xaxis.get_major_ticks():
tick.label.set_fontsize(ticksize)
for tick in cb.ax.get_yticklabels():
tick.set_fontsize(ticksize)
ax_cb.yaxis.tick_right()
if '0.' in matplotlib.__version__[0:2]:
print "The matplotlib version has to be updated to 1.1 or newer"
return imesh
if '1.0.' in matplotlib.__version__[0:4]:
print "The matplotlib version has to be updated to 1.1 or newer"
return imesh
matplotlib.pyplot.tight_layout()
if XAxisAsTime:
func = lambda x, pos: ('%s') %(datetime.datetime.utcfromtimestamp(x).strftime("%H:%M:%S"))
ax.xaxis.set_major_formatter(FuncFormatter(func))
ax.xaxis.set_major_locator(LinearLocator(7))
matplotlib.pyplot.ion()
return imesh
def pcolor(imesh, z, xlabel='', ylabel='', title=''):
z = z.T
ax = imesh.get_axes()
printLabels(ax, xlabel, ylabel, title)
imesh.set_array(z.ravel())
def addpcolor(ax, x, y, z, zmin, zmax, xlabel='', ylabel='', title='', colormap='jet'):
printLabels(ax, xlabel, ylabel, title)
Daniel Valdez
Optimizacion de graficos con buffer, el buffer se crea en la clase Axes del modulo figure.py, se agrega el metodo pcolorbuffer....
r318 ax.pcolormesh(x,y,z.T,vmin=zmin,vmax=zmax, cmap=matplotlib.pyplot.get_cmap(colormap))
def addpcolorbuffer(ax, x, y, z, zmin, zmax, xlabel='', ylabel='', title='', colormap='jet'):
printLabels(ax, xlabel, ylabel, title)
ax.collections.remove(ax.collections[0])
Daniel Valdez
Cambios en la clase RTIPlot para optimizar el uso de la memoria RAM....
r254
ax.pcolormesh(x,y,z.T,vmin=zmin,vmax=zmax, cmap=matplotlib.pyplot.get_cmap(colormap))
Daniel Valdez
Adicion de la clase ProfilePlot, CoherencePLot en el modulo jroplot.py...
r229
def createPmultiline(ax, x, y, xmin, xmax, ymin, ymax, xlabel='', ylabel='', title='', legendlabels=None,
ticksize=9, xtick_visible=True, ytick_visible=True,
nxticks=4, nyticks=10,
grid=None):
"""
Input:
grid : None, 'both', 'x', 'y'
"""
Miguel Valdez
Optimizacion del driver para matplotlib. Activacion y descativacion del modo interactivo al crear figures y axes
r244
matplotlib.pyplot.ioff()
Daniel Valdez
Adicion de la clase ProfilePlot, CoherencePLot en el modulo jroplot.py...
r229 lines = ax.plot(x.T, y)
Daniel Valdez
Adicion de la carpeta test donde se encuentra la aplicacion de prueba para los experimentos EWDrifts y Faraday...
r240 leg = ax.legend(lines, legendlabels, loc='upper right')
Daniel Valdez
Adicion de la clase ProfilePlot, CoherencePLot en el modulo jroplot.py...
r229 leg.get_frame().set_alpha(0.5)
ax.set_xlim([xmin,xmax])
ax.set_ylim([ymin,ymax])
printLabels(ax, xlabel, ylabel, title)
xtickspos = numpy.arange(nxticks)*int((xmax-xmin)/(nxticks)) + int(xmin)
ax.set_xticks(xtickspos)
for tick in ax.get_xticklabels():
tick.set_visible(xtick_visible)
for tick in ax.xaxis.get_major_ticks():
tick.label.set_fontsize(ticksize)
for tick in ax.get_yticklabels():
tick.set_visible(ytick_visible)
for tick in ax.yaxis.get_major_ticks():
tick.label.set_fontsize(ticksize)
iplot = ax.lines[-1]
if '0.' in matplotlib.__version__[0:2]:
print "The matplotlib version has to be updated to 1.1 or newer"
return iplot
if '1.0.' in matplotlib.__version__[0:4]:
print "The matplotlib version has to be updated to 1.1 or newer"
return iplot
if grid != None:
ax.grid(b=True, which='major', axis=grid)
matplotlib.pyplot.tight_layout()
Miguel Valdez
Optimizacion del driver para matplotlib. Activacion y descativacion del modo interactivo al crear figures y axes
r244
matplotlib.pyplot.ion()
Daniel Valdez
Adicion de la clase ProfilePlot, CoherencePLot en el modulo jroplot.py...
r229 return iplot
def pmultiline(iplot, x, y, xlabel='', ylabel='', title=''):
ax = iplot.get_axes()
printLabels(ax, xlabel, ylabel, title)
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201
Daniel Valdez
Adicion de la clase ProfilePlot, CoherencePLot en el modulo jroplot.py...
r229 for i in range(len(ax.lines)):
line = ax.lines[i]
line.set_data(x[i,:],y)
Daniel Valdez
Adicion de la carpeta test donde se encuentra la aplicacion de prueba para los experimentos EWDrifts y Faraday...
r240
def createPmultilineYAxis(ax, x, y, xmin, xmax, ymin, ymax, xlabel='', ylabel='', title='', legendlabels=None,
ticksize=9, xtick_visible=True, ytick_visible=True,
Daniel Valdez
El grafico RTI para SpectraHeis considera parametro de tiempo local....
r349 nxticks=4, nyticks=10, marker='.', markersize=10, linestyle="None",
Daniel Valdez
Adicion de la carpeta test donde se encuentra la aplicacion de prueba para los experimentos EWDrifts y Faraday...
r240 grid=None, XAxisAsTime=False):
"""
Input:
grid : None, 'both', 'x', 'y'
"""
Miguel Valdez
Optimizacion del driver para matplotlib. Activacion y descativacion del modo interactivo al crear figures y axes
r244 matplotlib.pyplot.ioff()
Daniel Valdez
Modificaciones de graficos para SpectraHeis
r337 # lines = ax.plot(x, y.T, marker=marker,markersize=markersize,linestyle=linestyle)
Daniel Valdez
El grafico RTI para SpectraHeis considera parametro de tiempo local....
r349 lines = ax.plot(x, y.T, linestyle='None', marker='.', markersize=markersize)
Daniel Valdez
se termina la clase RTIfromNoise para ploteo RTI del Ruido.
r246 leg = ax.legend(lines, legendlabels, loc='upper left', bbox_to_anchor=(1.01, 1.00), numpoints=1, handlelength=1.5, \
handletextpad=0.5, borderpad=0.5, labelspacing=0.5, borderaxespad=0.)
for label in leg.get_texts(): label.set_fontsize(9)
Daniel Valdez
Adicion de la carpeta test donde se encuentra la aplicacion de prueba para los experimentos EWDrifts y Faraday...
r240
ax.set_xlim([xmin,xmax])
ax.set_ylim([ymin,ymax])
printLabels(ax, xlabel, ylabel, title)
# xtickspos = numpy.arange(nxticks)*int((xmax-xmin)/(nxticks)) + int(xmin)
# ax.set_xticks(xtickspos)
for tick in ax.get_xticklabels():
tick.set_visible(xtick_visible)
for tick in ax.xaxis.get_major_ticks():
tick.label.set_fontsize(ticksize)
for tick in ax.get_yticklabels():
tick.set_visible(ytick_visible)
for tick in ax.yaxis.get_major_ticks():
tick.label.set_fontsize(ticksize)
iplot = ax.lines[-1]
if '0.' in matplotlib.__version__[0:2]:
print "The matplotlib version has to be updated to 1.1 or newer"
return iplot
if '1.0.' in matplotlib.__version__[0:4]:
print "The matplotlib version has to be updated to 1.1 or newer"
return iplot
if grid != None:
ax.grid(b=True, which='major', axis=grid)
matplotlib.pyplot.tight_layout()
if XAxisAsTime:
func = lambda x, pos: ('%s') %(datetime.datetime.utcfromtimestamp(x).strftime("%H:%M:%S"))
ax.xaxis.set_major_formatter(FuncFormatter(func))
ax.xaxis.set_major_locator(LinearLocator(7))
Miguel Valdez
Optimizacion del driver para matplotlib. Activacion y descativacion del modo interactivo al crear figures y axes
r244 matplotlib.pyplot.ion()
Daniel Valdez
Adicion de la carpeta test donde se encuentra la aplicacion de prueba para los experimentos EWDrifts y Faraday...
r240 return iplot
Daniel Valdez
se termina la clase RTIfromNoise para ploteo RTI del Ruido.
r246 def pmultilineyaxis(iplot, x, y, xlabel='', ylabel='', title=''):
Daniel Valdez
Adicion de la carpeta test donde se encuentra la aplicacion de prueba para los experimentos EWDrifts y Faraday...
r240
ax = iplot.get_axes()
printLabels(ax, xlabel, ylabel, title)
for i in range(len(ax.lines)):
line = ax.lines[i]
line.set_data(x,y[i,:])
Daniel Valdez
Adicion de la clase RTIPlot
r207
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 def draw(fig):
if type(fig) == 'int':
raise ValueError, "This parameter should be of tpye matplotlib figure"
fig.canvas.draw()