Ich habe hier eine große Frage - eine, von der ich mir vorstellen kann, dass sie die Mehrheit der Menschen nicht mag, und ich werde wahrscheinlich als Noob geflammt, aber hier geht es trotzdem.
Ich versuche, mit matplotlib ein Balkendiagramm in mein Pygame-Programm zu implementieren. Ich habe es ziemlich einfach geschafft, aber ohne Pygame.
Ich habe es geschafft, ein Balkendiagramm zu erstellen, kann es aber nicht in ein Pygame einfügen:
names = ['a', 'b', 'c']
values = [1, 10, 100]
plt.figure(1, figsize=(9, 3))
plt.bar(names, values)
plt.show()
Ich möchte dies in mein Spiel in Pygame implementieren, aber ich habe ehrlich gesagt keine Ahnung, wo ich anfangen soll. Es ist für ein Projekt, das nächste Woche fällig ist. Vielen Dank.
matplotlib
Standardmäßig wird tkinter
das Diagramm angezeigt. Es kann auch PyQt
oder wxPython
- sie werden genannt "backends"
- verwenden, aber es gibt keine Methoden, die PyGame
als Backend verwendet werden können.
Das einzige, was ich (mit Google) gefunden habe, ist ein Beispiel im PyGame-Wiki
Es rendert das Matplotlib-Diagramm in eine Bitmap und konvertiert diese Bitmap dann in eine Zeichenfolge, die zum Erstellen Surface
mit einem Bild verwendet werden kann.
import matplotlib
matplotlib.use("Agg")
import matplotlib.backends.backend_agg as agg
import pylab
fig = pylab.figure(figsize=[4, 4], # Inches
dpi=100, # 100 dots per inch, so the resulting buffer is 400x400 pixels
)
ax = fig.gca()
ax.plot([1, 2, 4])
canvas = agg.FigureCanvasAgg(fig)
canvas.draw()
renderer = canvas.get_renderer()
raw_data = renderer.tostring_rgb()
import pygame
from pygame.locals import *
pygame.init()
window = pygame.display.set_mode((600, 400), DOUBLEBUF)
screen = pygame.display.get_surface()
size = canvas.get_width_height()
surf = pygame.image.fromstring(raw_data, size, "RGB")
screen.blit(surf, (0,0))
pygame.display.flip()
crashed = False
while not crashed:
for event in pygame.event.get():
if event.type == pygame.QUIT:
crashed = True
Zum Glück würde ich matplotlib nicht verwenden, um ein Diagramm zu erstellen - insbesondere ist es nicht interaktiv. Es könnte einfach sein, in PyGame ein eigenes Diagramm zu erstellen.
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen