Hallo,
ich habe folgendes Problem, durch einen Taster soll der Plot in meiner grafischen Oberfläche erneuert werden. Das funktioniert auch schon so weit, nur leider ist der alte Graf noch zu sehen und der neue wird nur zusätzlich ins Diagramm mit eingezeichnet.
Hat jemand eine Idee, was ich falsch mache oder welcher Befehl fehlt?
Hier erst mal mein Code
Python
import matplotlib
matplotlib.use('TkAgg')
from numpy import arange, sin, pi
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib.figure import Figure
import Tkinter as Tk
import RPi.GPIO as GPIO
from pylab import *
GPIO.setmode(GPIO.BOARD)
GPIO.setup(23, GPIO.IN)
i=0
def Knopf1(hoch):
global i
global x
global y
i=i+0.1
y = sin(x+i/10.0) # update the data
x = x+i
#del a.lines[0]
#line=a.plot(x,y)
canvas.restore_region(background)
line[0].set_data(x,y)
a.draw_artist(line[0])
canvas.blit(a.bbox)
#canvas.draw()
# Interrupt Event hinzufuegen. Pin 23, auf steigende Flanke reagieren und ISR "Interrupt" deklarieren
GPIO.add_event_detect(23, GPIO.RISING, callback = Knopf1, bouncetime = 200)
# GUI
root = Tk.Tk()
f = Figure(figsize= (5,4), dpi=100)
a = f.add_subplot(111)
x = arange(0,2*pi,0.01)
y = sin(x)
line=a.plot(x,y)
# a tk.DrawingArea
canvas = FigureCanvasTkAgg(f, master=root)
plt.show(block=False)
canvas.get_tk_widget().pack(side=Tk.TOP, fill=Tk.BOTH, expand=1)
background=canvas.copy_from_bbox(a.bbox)
Tk.mainloop()
Alles anzeigen
Wäre echt super, wenn mir jemand weiterhelfen könnte =)