#!/usr/bin/python3 # PyGame zeigt eine Matplotlib-Graphik auf Bildschirm from matplotlib.backends.backend_agg import \ FigureCanvasAgg import matplotlib.pyplot as plt import pygame from pygame.locals import * from os import system # # Daten für x- und y-Koordinaten, und ihre Gestaltung lx = [-2,-1,0,1,2] # Liste der x-Koordinaten ly = [4.8,2,1.5,5.5,3] # Liste der y-Koordinaten fmt='bo-' # Formatangabe für Datenpunkte und Linie # # Gestaltung der Achsen und Erzeugung des Plots fig = plt.figure(figsize=(6.4,4.8),dpi=100) # defaults plt.xlabel('unabhängige Variable') # x-Beschriftung plt.ylabel('abhängige Variable') # y-Beschriftung plt.axis([-3,3,0,6]) # Achsen: xmin,xmax,ymin,ymax plt.plot(lx,ly,fmt) # Plot-Erzeugung, keine Ausgabe # # Vorbereitung der Graphik für pygame cv = fig.canvas.switch_backends(FigureCanvasAgg) size = cv.get_width_height() ; cv.draw() raw_data = cv.get_renderer().tostring_rgb() # # Anzeige der Graphik mithilfe von pygame system("clear") pygame.display.init() pygame.mouse.set_visible(False) pygame.display.set_mode(size) s = pygame.display.get_surface() i = pygame.image.fromstring(raw_data, size, "RGB") s.blit(i, (0,0)) ; pygame.display.flip() # # Warten auf Tastendruck und dann Ende waiting=True while waiting: for event in pygame.event.get(): if event.type == pygame.QUIT: var="QUIT" ; waiting=False elif event.type == pygame.KEYDOWN: var="KEYDOWN" ; waiting=False pygame.quit() ; print("Ende durch",var)