Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import ikkunasto
- tila = {
- 'tekstilaatikko': None,
- 'pisteet': []
- }
- def valitse_datapiste(event):
- """Ottaa vastaan hiiren klikkaustapahtuman ja lukee siitä
- datapisteen x- ja y-arvot. Arvot tulosteetaan tekstilaatikkoon sekä
- talletetaan ohjelman tilasanakirjassa olevaan pisteet-listaan."""
- while True:
- pisteet = []
- try:
- if event.xdata == None or event.ydata == None:
- ikkunasto.kirjoita_tekstilaatikkoon(tila["tekstilaatikko"],
- "Klikkasit kuvaajan ulkopuolelta")
- except AttributeError:
- print('Klikki ei ole kuvaajassa!')
- break
- else:
- x = float(event.xdata)
- y = float(event.ydata)
- viesti = 'Käyrän arvo pisteessä x={:.2f} on {:.2f}'.format(x, y)
- tekstilaatikko = ikkunasto.kirjoita_tekstilaatikkoon(tila["tekstilaatikko"],
- viesti, tyhjaa=False)
- piste = (round(x, 2), round(y, 2))
- pisteet.append(piste)
- break
- tila['pisteet'] = pisteet
- def main(datax, datay):
- """Luo käyttöliittymän, jossa on klikattava kuvaaja sekä
- tekstilaatikko. Kuvaajaan piirretään käyrä parametreina saatujen
- data-arvojen perusteella."""
- akkuna = ikkunasto.luo_ikkuna('kuvaaja')
- kehys = ikkunasto.luo_kehys(akkuna, puoli=ikkunasto.ALA)
- kehys2 = ikkunasto.luo_kehys(akkuna, puoli=ikkunasto.YLA)
- piirtoalue, kuvaaja = ikkunasto.luo_kuvaaja(kehys2, valitse_datapiste,
- 600, 400)
- kuva = kuvaaja.add_subplot(111)
- tekstilaatikko = ikkunasto.luo_tekstilaatikko(kehys, 80, 20)
- tila["tekstilaatikko"] = tekstilaatikko
- kuva.plot(datax, datay)
- piirtoalue.show()
- ikkunasto.kaynnista()
- if __name__ == "__main__":
- datax = [0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0]
- datay = [0.0, 0.19, 0.36, 0.51, 0.64, 0.75, 0.84, 0.91, 0.96, 0.99, 1.0, 0.99, 0.96, 0.91, 0.84, 0.75, 0.64, 0.51, 0.36, 0.19, 0.0]
- main(datax, datay)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement