在Django中输出matplotlib生成的图片方法
下面的代码片段是直接在Django中输出matplotlib生成的图片,网上很多种方法都是先生成图片再调用,感觉不是那么直接。
环境:Python2.7,Django1.83
该文件为views.py文件,函数映射按实际设置。
from django.shortcuts import render from django.http import HttpResponse from matplotlib.figure import Figure from matplotlib.backends.backend_agg import FigureCanvasAgg from matplotlib.dates import DateFormatter import matplotlib.pyplot as plt import random import datetime # Create your views here. def gen_mat(request): fig=Figure(figsize=(6,6)) ax=fig.add_subplot(111) x=[] y=[] now=datetime.datetime.now() delta=datetime.timedelta(days=1) for i in range(10): x.append(now) now+=delta y.append(random.randint(0, 1000)) ax.plot_date(x, y, '-') ax.xaxis.set_major_formatter(DateFormatter('%Y-%m-%d')) fig.autofmt_xdate() canvas=FigureCanvasAgg(fig) response=HttpResponse(content_type='image/png') canvas.print_png(response) plt.close(fig) return response