Django中直接输出matplotlib生成的图片方法

花开有时
花开有时
发布时间:2026-10-13 | 4人浏览过
原创

本文介绍如何在Django框架中直接通过HttpResponse输出Matplotlib生成的图片,无需先保存为文件。基于Python 2.7和Django 1.83环境,通过views.py中的gen_mat函数示例,展示利用FigureCanvasAgg将图表数据直接转换为PNG格式返回给浏览器的完整实现过程。

以下代码片段展示了如何在Django中直接输出由matplotlib生成的图片。网络上许多方法通常需要先保存图片文件再调用,这种方法显得不够直接。

运行环境为Python 2.7,Django版本为1.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

以上关于在Django中输出matplotlib生成图片的方法即为全部内容,希望能提供有益参考,并欢迎大家继续支持本站。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表