Portál AbcLinuxu, 12. května 2025 01:20

Dotaz: Interaktivní graf v Pythonu

1.1.2011 15:35 Michal1898
Interaktivní graf v Pythonu
Přečteno: 614×
Odpovědět | Admin
Příloha:
Dobrý den. Potřeboval bych poradit. Vykresluji grafy v Pythonu. Používám matplotlib. Problém je, jak mám řešit zadávání hodnot. Pylab to má jako předdefinovanou funkci. Chtěl bych to udělat interaktivně, abych měl někde dialogové okno, do kterého bych zadal konstanty a ono mě je to vykreslilo do grafu. Zkoušel jsem to zkombinovat s wxpythonem, ale nějak mi to společně nefunguje.

Nevíte někdo, jak to udělat? Tady mám kód:

#!/usr/bin/env python # -*- coding: cp1250 -*-

#from pylab import *

def f(t): s1 = cos(2*pi*t) e1 = exp(-t) return multiply(s1,e1) U0=20 R=1 C=20e-6 tau=R*C t1 = arange(0.0, 10*tau, 0.2*tau)

def Ur(t): ur = U0*exp(-t/tau) return ur

def Uc(t): uc = U0*(1-exp(-t/tau)) return uc

def I(t): i=U0/R*exp(-t/tau) return i

def Q(t): q=C*U0*exp(-t/tau) return q

subplot(311) xlabel('Uc, Ur [V]') ylabel('U [V]') plot(t1, Ur(t1), 'bo', markerfacecolor='green') plot(t1, Uc(t1), 'bo', markerfacecolor='blue') plot(t1, Uc(t1)+Ur(t1), 'bo', markerfacecolor='silver')

grid(True) title('Prechodne deje na seriove kombinaci RC') #ylabel('Damped oscillation')

subplot(312) plot(t1, I(t1), 'bo', markerfacecolor='silver') grid(True) #xlabel('time (s)') ylabel('I [A]')

subplot(313) plot(t1, Q(t1), 'bo', markerfacecolor='yellow') grid(True) xlabel('time (s)') ylabel('Q [C]')

show()

a chtěl bych v něm plynule měnit R,C a U0. Může mi někdo poradit? Předem děkuji. Michal1898
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

1.1.2011 16:37 michal | skóre: 24 | blog: Blog
Rozbalit Rozbalit vše Re: Interaktivní graf v Pythonu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Něco jako tento návod?

http://eli.thegreenplace.net/2009/01/20/matplotlib-with-pyqt-guis/

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.