相关疑难解决方法(0)

如何在Django中使用Matplotlib?

从互联网上的一些例子中我制作了下面的测试代码.有用!

...但是,如果我重新加载页面,饼图将使用相同的图像绘制自己.每次重新加载页面时,某些部分会变暗.当我重新启动开发服务器时,它会被重置.如何在Django中使用Matplotlib正确绘制?它看起来好像记得一些图纸......

源views.py(让urls.py链接到它):

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
Run Code Online (Sandbox Code Playgroud)

我正在使用Django 1.0.1和Python 2.6.2(Linux).

python django matplotlib

20
推荐指数
1
解决办法
2万
查看次数

如何在Django网页中嵌入matplotlib图?

所以,请耐心等待,因为我对Django,Python和Web开发非常陌生.我想要做的是显示我使用matplotlib制作的图表.我让它工作到主页自动重定向到图形的png(基本上是浏览器中显示图形的选项卡).但是,现在我想要的是看到实际的主页与图形简单嵌入.换句话说,我想看到导航栏等,然后是网站正文中的图形.

到目前为止,我已经搜索过,而且我对如何实现这一目标有所了解.我在想的是有一个只返回图形的特殊视图.然后,以某种方式从我的模板中的img src标签访问此png图像,我将用它来显示我的数据.

图形代码:

from django.shortcuts import render
import urllib
import json
from django.http import HttpResponse
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from matplotlib.figure import Figure
import datetime as dt
import pdb

def index(request):
    stock_price_url = 'https://www.quandl.com/api/v3/datatables/WIKI/PRICES.json?ticker=GOOGL&date.gte=20151101&qopts.columns=date,close&api_key=KEY'

    date = []
    price = []

    #pdb.set_trace()
    source_code = urllib.request.urlopen(stock_price_url).read().decode()

    json_root = json.loads(source_code)
    json_datatable = json_root["datatable"]
    json_data = json_datatable["data"]

    for day in json_data:
        date.append(dt.datetime.strptime(day[0], '%Y-%m-%d'))
        price.append(day[1])

    fig=Figure()
    ax = fig.add_subplot(1,1,1)

    ax.plot(date, price, '-')

    ax.set_xlabel('Date')
    ax.set_ylabel('Price')
    ax.set_title("Google Stock")

    canvas = FigureCanvas(fig)
    response = HttpResponse(content_type='image/png') …
Run Code Online (Sandbox Code Playgroud)

python django graph matplotlib

5
推荐指数
3
解决办法
8306
查看次数

如何在Django Web应用程序中呈现Matplotlib图?

我正在阅读Python开发人员的Matplotlib一书,但我正在努力遵循第8章"Django应用程序中的Matplotlib"一节中的示例.

到目前为止,我已发出命令

django-admin startproject mpldjango
Run Code Online (Sandbox Code Playgroud)

并且,在mpldjango目录中,

python manage.py startapp mpl
Run Code Online (Sandbox Code Playgroud)

根据这个例子,mpldjango/mpl我做了views.py如下:

import django
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from matplotlib.figure import Figure
import numpy as np

def mplimage(request):
    fig = Figure()
    canvas = FigureCanvas(fig)
    ax = fig.add_subplot(111)
    x = np.arange(-2,1.5,.01)
    y = np.sin(np.exp(2*x))
    ax.plot(x, y)
    response=django.http.HttpResponse(content_type='image/png')
    canvas.print_png(response)
    return response
Run Code Online (Sandbox Code Playgroud)

接下来,书中说mpldjango/urls.py应该添加这一行:

urlpatterns = patterns('',
       (r'mplimage.png', 'mpl.views.mplimage'),
)
Run Code Online (Sandbox Code Playgroud)

但是,我不知道这是如何工作的,因为在'default'中urls.py,urlpatterns是一个django.conf.urls.url对象:

from django.conf.urls import url …
Run Code Online (Sandbox Code Playgroud)

python django matplotlib

4
推荐指数
1
解决办法
4648
查看次数

标签 统计

django ×3

matplotlib ×3

python ×3

graph ×1