2017-08-02 6 views
2

私はいくつかのパラメータを持つ関数のプロットを表示するDjango Webアプリケーションを作成しようとしていますが、ウェブ上のこれの例。フォームを使用してパラメータ化できるDjango WebアプリケーションでMatplotlibプロットを生成する方法

これまでのところ、私は次のような構造を持つmpldjangoプロジェクト内mplアプリを作成しました:mpl/views.py

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

def make_canvas(rate): 
    rate = float(rate) 
    fig = Figure() 
    canvas = FigureCanvas(fig) 
    ax = fig.add_subplot(111) 
    x = np.arange(-2, 1.5, 0.01) 
    y = np.sin(np.exp(rate * x)) 
    ax.plot(x,y) 
    return canvas 

def mplimage(request, rate=2): 
    canvas = make_canvas(rate=rate) 
    response=django.http.HttpResponse(content_type='image/png') 
    canvas.print_png(response) 
    return response 

mpldjango/urls.pyであることは今

from django.conf.urls import include, url 
from django.contrib import admin 
import mpl.views 

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'mplimage.png/a=(?P<rate>[0-9]+)', mpl.views.mplimage), 
    url(r'mplimage.png', mpl.views.mplimage), 
] 

です

. 
├── db.sqlite3 
├── manage.py 
├── mpl 
│   ├── __init__.py 
│   ├── __pycache__ 
│   ├── admin.py 
│   ├── apps.py 
│   ├── migrations 
│   │   └── __init__.py 
│   ├── models.py 
│   ├── tests.py 
│   └── views.py 
└── mpldjango 
    ├── __init__.py 
    ├── __pycache__ 
    ├── settings.py 
    ├── urls.py 
    └── wsgi.py 

、以降私はhttp://localhost:8000/mplimage.png/a=3を参照した場合、例えば、私は3に設定rateパラメータでプロットを得る:私はURLにa=2を設定した場合

enter image description here

と類似しました。

これは私が望むインターフェイスではありません。プロットパラメータを含むフォームを記入し、提出する際にプロットを更新することをお勧めします。これは非常に標準的なコード例ですが、私は何も見つけることができませんでした。私はこれについてどうやって行くのですか?

答えて