我使用matplotlib在我的django應用程序中繪製了一些小的數據集,但導入語句與運行時間相比,我的以前的版本增加了大約1-2秒 - 使用JavaScript圖形工具 - 所以現在它幾乎需要3秒,而不是在1/2秒之內來加載頁面。即使我辦公室的大多數人都不在乎,它仍會讓我感到不安。任何方式來加快matplotlib的Web服務器(Django)應用程序的加載時間?
這裏的基本代碼:
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from matplotlib.figure import Figure
fig = Figure(figsize=[7, 7])
canvas = FigureCanvas(fig)
ax = fig.add_axes([1, 1, 5, 5])
ax.scatter(x, y, c=colors, s=15, linewidth=1.5)
ax.set_xticklabels(labels, rotation=-40, horizontalalignment='left')
fig.savefig(file)
有沒有更輕質方法加載圖 - 或者不同的後端是更快?
我從javascript實用程序切換,因爲我的同事需要能夠從網站複製和粘貼圖像。我喜歡使用matplotlib的想法,因爲現在我可以製作一些更出色的圖表,但如果這樣的表現會更好,我可以使用其他輕量級工具。
另一個想法是使某種服務器應用程序始終運行並偵聽端口以進行查詢,然後發回映像。然後它不必爲每個查詢加載整個matplotlib庫。但是,這聽起來像很多工作。
您是在主視圖中渲染圖像並將其保存爲文件,還是將它們渲染爲單獨的視圖並返回HttpResponse?緩存可能嗎? –
我將圖保存在臨時png文件中,然後主視圖模板獲取臨時文件的路徑並顯示它。緩存不會提供太多幫助,因爲人們可以自定義他們的圖形,大多數圖像只能看到幾次。 – brfox