6 jun. 2011

Generando una gráfica en python con matplotlib con PyQT. Parte 11

A partir de este artículo las gráficas con matplotlib se explicarán con la librería gráfica PyQT. Para ello en otros artículos se reiniciará la serie sobre pyQT.

En este artículo se tomará las funciones creadas en el artículo anterior para calcular la trayectoria del lanzamiento de proyectil y se creará un objeto basandose en las librerías PyQT.

El código se muestra a continuación:
#!/usr/bin/env python #Para los argumentos desde la linea de comandos import sys # Importar GUI de PyQT from PyQt4 import QtGui # Importar numpy para la creacion de la imagen import numpy as np # Se importa el objeto Figure de Matplotlib from matplotlib.figure import Figure #Se importa QT4Agg como Canvas. from matplotlib.backends.backend_qt4agg \   import FigureCanvasQTAgg as FigureCanvas #Se define la funcion x(t) de la ecuacion de posicion (movimiento horizontal) def fx (t):     #Se define la posicion inicial en 0     x0 = 0     #Se define la velocidad inicial en 2 mts/seg     v0x = 2     #Se define la aceleracion en 1 mts/seg^2     ax = 1     #Se hace el calculo de la posicion con respecto al tiempo     x = x0 + v0x*t + 0.5*ax*t**2     return x #Se define la funcion y(t) de la ecuacion de posicion altura def fy(t):     #Se define la altura inicial en 100 mts     y0 = 100     #Se define la velocidad inicial en 10 mts/seg     v0y = 10     #Se define la gravedad en 9.81 mts/seg^2     g = 9.81     #Se realiza el calculo de l posicion en funcion del tiempo     y = y0 + v0y*t - 0.5*g*t**2     return y class Lienzo(FigureCanvas):     """Clase que represente a FigureCanvas"""     def __init__(self):         # Codigo para generar la grafica         self.figura = Figure()         self.ejes = self.figura.add_subplot(111)         self.tiempo = np.arange(0.0, 5.65, 0.01)         #Calculo de la posicion en el eje X y Y         self.x = fx(self.tiempo)         self.y = fy(self.tiempo)         #Se crea la grafica         self.ejes.plot(self.x, self.y)         # inicializar el lienzo donde se crea la grafica.         FigureCanvas.__init__(self, self.figura)         if __name__ == '__main__':     # Se crea el GUI de la aplicacion     qApp = QtGui.QApplication(sys.argv)     # Se crea el widget para matplotlib        mpl = Lienzo()     # Se muestra el widget.     mpl.show()     #Se inicia el lazo de ejecucion de QT.     sys.exit(qApp.exec_())

La siguiente figura muestra la gráfica de la trayectoria del lanzamiento de proyectil.
Publicar un comentario en la entrada

AddThis