Create plots in pygame.
Note that the library is in an experimental developement stage and not all features of standard matplotlib backends are implement at the moment.
pip install pygame-matplotlib
First you will need to specify that you want to use pygame backend.
# Select pygame backend import matplotlib matplotlib.use('pygame')
Then you can use matplotlib as you usually do.
# Standard matplotlib syntax import matplotlib.pyplot as plt fig, ax = plt.subplots() # Create a figure containing a single axes. ax.plot([1, 2, 3, 4], [1, 4, 2, 3]) # Plot some data on the axes. plt.show()
Or you can include the plot in your game using the fact that a Figure is
also a pygame.Surface with this backend.
import pygame import pygame.display fig, axes = plt.subplots(1, 1,) axes.plot([1,2], [1,2], color='green', label='test') fig.canvas.draw() screen = pygame.display.set_mode((800, 600)) # Use the fig as a pygame.Surface screen.blit(fig, (100, 100)) show = True while show: for event in pygame.event.get(): if event.type == pygame.QUIT: # Stop showing when quit show = False pygame.display.update()
Note that if you want to update the plot during the game, you might
need to call fig.canvas.draw() and screen.blit(fig) during
the game loop.
See examples in test.py or test_show.py
The matplotlib Figure object is replaced by a FigureSurface object
which inherits from both matplotlib.figure.Figure and
pygame.Surface.
Support mainly the basic plotting capabilities.