我有一个数字(价格确切)/每个月的字典:
{'2018-05-26': Decimal('7334.1638'), '2018-05-27': Decimal('7344.9675'), '2018-05-28': Decimal('7105.6725')}
我可以使用plotly轻松地绘制这个,并且情节看起来像这样:
我希望此图表在pygame中显示为图形。我有几个关于如何在pygame中显示matplotlib数据的例子,但那些只是复制/粘贴图,你不能与环境进行交互。我想要做的是让这个剧情成为pygame中的游戏环境。
让我们说如果我想要一辆汽车像这样的小山在这个地块上奔跑。此外,由于我的列表是动态的,所以我需要它是实时的。关于如何实现这一目标的任何建议都会有所帮助。
答案 0 :(得分:0)
我使用了来自 pygame wiki 的这个方法 - http://www.pygame.org/wiki/MatplotlibPygame 它将 matplotlib 中的 Grapgh 渲染为位图,然后将其转换为字符串,然后使用此字符串在 pygame 中创建带有图像的表面。
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