Je suis en train de faire jeu échelle serpent & Web sur Django
, pour lequel je me sers matplotlib
et mpld3
pour créer et afficher mes données de jeu sur la page Web.Mise en image inversée de la vue html Django
Je peux obtenir mon image sur la page Web mais elle est inversée.
Où est-ce que je me trompe dans ce code?
mon fichier views.py:
import matplotlib.image as mpimg
import mpld3 as mpld3
import numpy as np
import matplotlib.pyplot as plt
def home(request):
image = mpimg.imread('platform3.png')
figure = plt.figure(dpi=100)
subplot = figure.add_subplot(111)
subplot.set_xlim(0, 10)
subplot.set_ylim(0, 10)
subplot.imshow(image, extent=[0, 10, 0, 10])
canvas = FigureCanvas(figure)
response = django.http.HttpResponse(content_type='image/png')
canvas.print_png(response)
html_gen = 'graph.html'
with open(html_gen, 'w') as f:
f.write(mpld3.fig_to_html(figure))
f.write("Hello")
return render(request, html_gen)
dois-je fournir aussi le fichier généré html_gen.html?
Cela a fonctionné pour moi, mais j'ai une question ici, quand Je n'ai pas mentionné l'origine, par défaut, il a pris aucun droit. Alors pourquoi mon image est-elle inversée? cela prend-il une autre valeur comme origine? –
Par défaut (j'utilise les paquets par défaut d'Ubuntu 16.04) 'image.origin = 'upper''. J'ai mis à jour la réponse avec plus d'informations sur un sujet. – twil
Merci pour cette explication détaillée. Je l'ai maintenant. J'utilise aussi ubuntu 16.04 et utilisé plus bas par défaut que vous avez mentionné. –