Comment utiliser Matplotlib dans Django?
À partir de quelques exemples à partir de l'Internet, j'ai fait le test de code ci-dessous. Il fonctionne!
... MAIS si je recharge la page, la tarte se dessiner lui-même avec la même image. Certaines parties plus sombres à chaque fois que je recharge la page. Lorsque je redémarre le serveur de développement, il est remis à zéro. Comment puis-je dessiner correctement avec Matplotlib dans Django? On dirait qu'il se souvient de quelques dessins...
Source views.py (laissez urls.py lien):
from pylab import figure, axes, pie, title
from matplotlib.backends.backend_agg import FigureCanvasAgg
def test_matplotlib(request):
f = figure(1, figsize=(6,6))
ax = axes([0.1, 0.1, 0.8, 0.8])
labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
fracs = [15,30,45, 10]
explode=(0, 0.05, 0, 0)
pie(fracs, explode=explode, labels=labels, autopct='%1.1f%%', shadow=True)
title('Raining Hogs and Dogs', bbox={'facecolor':'0.8', 'pad':5})
canvas = FigureCanvasAgg(f)
response = HttpResponse(content_type='image/png')
canvas.print_png(response)
return response
Je suis en utilisant Django 1.0.1 et Python 2.6.2 (Linux).
- Pour django 2.0 et matplotlib 2.2, consultez ce AFIN de répondre
Vous devez vous connecter pour publier un commentaire.
Vous devez supprimer le
num
paramètre à partir de la figure constructeur et fermer la figure lorsque vous avez terminé avec elle.Par la suppression de la
num
paramètre, vous allez éviter d'utiliser la même figure en même temps. Cela pourrait se produire si les 2 navigateurs demander à l'image en même temps. Si ce n'est pas un problème, une autre solution possible est d'utiliser la claire méthode, c'est à diref.clear()
.1.enregistrer l'image qui a créé par matplotlib
par exemple:plt.savefig('./app1/static/visualiser.png')
2.l'utilisation de l'image dans votre code html
par exemple:
sur django comment utiliser des variables statiques(comme sur la photo et le fichier js) vous pouvez vous référer à django document