2009-12-09 6 views
17

인터넷의 일부 예제에서 아래 테스트 코드를 만들었습니다. 그것은 작동합니다!Django에서 Matplotlib을 사용하는 방법?

...하지만 페이지를 새로 고침하면 원형이 같은 이미지로 그려집니다. 일부 페이지는 페이지를 새로 고침 할 때마다 어두워집니다. 개발 서버를 다시 시작하면 다시 설정됩니다. Dhango에서 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 

내가 장고 1.0.1 파이썬 2.6.2를 사용하고을 (리눅스) .

답변

24

그림을 완료하면 figure constructorclose에서 num 매개 변수를 제거해야합니다. num 매개 변수를 제거함으로써

import matplotlib.pyplot 

def test_matplotlib(request): 
    f = figure(figsize=(6,6)) 
    .... 
    matplotlib.pyplot.close(f) 

, 당신은 같은 시간에 같은 그림을 사용하지 않는 것입니다. 이는 2 명의 브라우저가 동시에 이미지를 요청할 경우 발생할 수 있습니다. 이것이 문제가되지 않는다면 방법 (예 : f.clear())을 사용하는 것이 좋습니다.

+0

대단히 감사합니다! 원하는대로 작동합니다! –

+0

[이 비디오] (https://youtu.be/ZmYPzESC5YY?t=5m8s)의 설명도 도움이 될 수 있습니다. – J0ANMM

관련 문제