2017-07-05 16 views
1

mpld3チャートをDjangoとMPLD3/Matplotlibを使用してwebappに入れようとしています。 hereで説明したように、Pythonで書かれた図のHTMLコードを簡単に取得できるはずです。Djangoレンダリングmpld3を使用したHTMLの

Views.py

def figure(request): 

    np.random.seed(9615) 

    N = 100 
    df = pd.DataFrame((.1 * (np.random.random((N, 5)) - .5)).cumsum(0), 
        columns=['a', 'b', 'c', 'd', 'e'],) 

    # plot line + confidence interval 
    fig, ax = plt.subplots() 
    ax.grid(True, alpha=0.3) 

    for key, val in df.iteritems(): 
     l, = ax.plot(val.index, val.values, label=key) 
     ax.fill_between(val.index, 
         val.values * .5, val.values * 1.5, 
         color=l.get_color(), alpha=.4) 
    ax.set_xlabel('x') 
    ax.set_ylabel('y') 
    ax.set_title('Interactive legend', size=20) 

    html_fig = mpld3.fig_to_html(fig,template_type='general') 
    plt.close(fig) 

    return render(request, "dashboard.html", {'active_page' : 'dashboard.html', 'div_figure' : html_fig}) 

dashboard.html

<div id="fig_container"> 
       {{ div_figure }} 
</div> 

私の知る限り、Pythonコードでは、JavaScriptに翻訳取得しviews.pyはdashboard.htmlレンダリングされたときに実行されるべきです、 右?

結果として、私はdashboard.hmtlにHTMLコードをテキストとして表示します。

質問:グラフを表示するにはどうすればよいですか? html_to_figメソッドから返されるHTML文字列を解析する必要がありますか?

答えて

0

<div id="fig_container"> 
    {{ div_figure|safe }} 
</div> 
+0

ありがとうのhtmlでこれを試してみてください!すべてうまく動作します。あなたは '安全なexztensionを説明していただけますか?どうも。 –

+0

または参考資料? tHx –

+0

あなたはdjangoテンプレートフィルタを参照のために探すことができます。d way safeは、渡すコンテンツからHTMLをレンダリングするためのものです。そのフィルタは、基本的にdjangoに、htmlとしてレンダリングするのが安全であることを伝えます – Exprator

関連する問題