2

私は現在、ビュー機能を備えたDjangoプロジェクトを持っており、次のようなコードがあります(コードはこの投稿からコピーされました):

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

グラフから png を作成し、直接提供します。このpngでグラフの背景を透明にするにはどうすればよいですか?

4

1 に答える 1

0

テストされていませんが、これは機能するはずです。(実際の)ファイルに書き込む必要はありません。ファイルのようなオブジェクトが機能するはずです。このコードは、画像を応答に保存します。

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')
    f.savefig(response, transparent=True, format='png')
    #canvas.print_png(response)
    return response
于 2013-08-19T03:29:18.740 に答える