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

yipeiwu_com6年前Python基础

下面的代码片段是直接在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

以上这篇在Django中输出matplotlib生成的图片方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python实现线程池代码分享

原理:建立一个任务队列,然多个线程都从这个任务队列中取出任务然后执行,当然任务队列要加锁,详细请看代码 import threading import time import sig...

Python中__name__的使用实例

1. 如果模块是被导入,__name__的值为模块名字 2. 如果模块是被直接执行,__name__的值为'__main__' Py1.py 复制代码 代码如下: #!/usr/bin/...

python 文件的基本操作 菜中菜功能的实例代码

python  文件的基本操作 菜中菜 文件操作 ​ open():打开 ​ file:文件的位置(路径) ​ mode:操作文件模式 &#...

python处理csv数据的方法

本文实例讲述了python处理csv数据的方法。分享给大家供大家参考。具体如下: Python代码: 复制代码 代码如下: #coding=utf-8 __author__ = 'deh...

python基础教程之面向对象的一些概念

Python使用类(class)和对象(object),进行面向对象(object-oriented programming,简称OOP)的编程。 面向对象的最主要目的是提高程序的重复使...