Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Como variar el gráfico con los botones interactivo?
#1
[b]AYUDA!![/b]
mi principal problema es que no logro que en mi gráfico varíen sus datos en base a los botones interactivos.
en la primera clase motor los "self.areapiston" y "self.carrera" son el tema principal.
  • si utilizo el np.arange se grafica mi función.

  • si dejo "self.areapiston = areapiston" y "self.carrera = carrera", entonces no aparece la curva en la gráfica, pero si varia el valor resultante.
[b]AYUDA!!!![/b]
Código:
class motor():
    #atributos
    def __init__(self, areapiston, carrera):
        self.areapiston= np.arange(0,100,1) # area del piston
        self.carrera = np.arange(0,100,1) #carrera del psiton
        self.ns= 50 # valor, np.arange(0,100,1) por segundo.
        self.z= 6 #valor, numero de cilindros.
        self.stroke = 4 #numero de tiempos del motor
esta es la segunda opción que intento
Código:
class motor():
    #atributos
    def __init__(self, areapiston, carrera):
        self.areapiston= areapiston # area del piston
        self.carrera = carrera #carrera del piston
        self.ns= 50 # valor, np.arange(0,100,1) por segundo.
        self.z= 6 #valor, numero de cilindros.
        self.stroke = 4 #numero de tiempos del motor
aquí esta lo principal, Aunque si lo copian en sus compiladores les faltaran datos ya que omití parte de mi código para no saturar esto.
Código:
    def velMedPiston(self):
        u = 2*self.ns*self.carrera #velocidad media del piston
        return u
    def suptotpistones(self):
        st=self.areapiston * self.z #superficie total de los pistones
        return st
    def volumentotal(self):
        vol= self.areapiston* self.carrera
        return vol
    def potencia(self):
        u = self.velMedPiston()
        st = self.suptotpistones()
        wu=(nu*nvt*po*st*(hi/at)*(u/self.stroke))/1000 #potencia del motor.
        return wu
       
    def graficopotencia(self):
        fig, ax = plt.subplots()
        x = self.suptotpistones()
        y = self.potencia()
        ax.plot(x, y)
        ax.set_xlabel('superficie total de los pistones en mm2')
        ax.set_ylabel('Potencia del motor en HP')
        ax.set_title('Grafico de Potencia')
        ax.grid(True)
        ax.tick_params(labelcolor='b', labelsize='medium', width=3)
        plt.show()

@widgets.interact(areapiston=(0,100,1), carrera=(0,100,1))
def principal(areapiston,carrera):
    principal = motor(areapiston, carrera)
    print ('Cilindrada {} ccc'.format(principal.volumentotal()))
    print ('potencia {} HP'.format(principal.potencia()))
    return principal.graficopotencia()

LO QUE YO NECESITO ES, QUE APAREZCA LA CURVA Y QUE APAREZCAN LOS RESULTADOS.

ES DECIR, COMBINAR LOS 2 CODIGOS
Responder


Salto de foro:


Usuarios navegando en este tema: 2 invitado(s)