matplotlibを使いhtml上に表を作りたいです。
def past_result(request): return render(request, 'past_result.html', {'chart': _view_plot(request)}) def _view_plot(request): df = pd.DataFrame() df[u'受検日'] = ['2016-04-01', '2016-04-02', '2016-04-03'] df[u'国語'] = [2200, 2100, 1500] df[u'算数'] = [2200, 2100, 1500] col_width = 3.0 row_height = 0.625 font_size = 14 header_color = '#40466e' row_colors = ['#f1f1f2', 'w'] edge_color = 'w' bbox = [0, 0, 1, 1] header_columns = 0 ax = None if ax is None: size = (np.array(df.shape[::-1]) + np.array([0, 1])) * np.array([col_width, row_height]) fig, ax = plt.subplots(figsize=size) ax.axis('off') mpl_table = ax.table(cellText=df.values, bbox=bbox, colLabels=df.columns) mpl_table.auto_set_font_size(False) mpl_table.set_fontsize(font_size) for k, cell in six.iteritems(mpl_table._cells): cell.set_edgecolor(edge_color) if k[0] == 0 or k[1] < header_columns: cell.set_text_props(weight='bold', color='w') cell.set_facecolor(header_color) else: cell.set_facecolor(row_colors[k[0] % len(row_colors)]) plt.savefig('output1.png') return ax
とコードを書きました。
past_resultメソッドを実行するとoutput1.pngは作られますが、past_result.htmlでその画像は描画されません。また、plt.savefig('output1.png')の代わりに
plt.show()
と書くとPythonが予期せぬ理由で終了しました、と出てサーバーが止まってしまいます。なぜpast_result.htmlで表を表示させられないのでしょうか?どのように直せば良いのでしょうか?できれば、毎回画像を保存するplt.savefig('output1.png')ではなくplt.show()を使いpast_result.htmlで表を表示させたいです。どのように直せば良いのでしょうか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。