Я рисую некоторые красочные диаграммы рассеяния, используя matplotlib в моем приложении django для некоторых небольших наборов данных, но операторы импорта добавляют примерно 1-2 секунды ко времени выполнения по сравнению с моей предыдущей версией, которая использовала утилиту построения графиков javascript - так что теперьзагрузка страницы занимает почти 3 секунды, а не менее 1/2 секунды.Меня это беспокоит, хотя большинству людей в моем офисе это не важно.
Вот основной код:
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 для каждого запроса.Но это звучит как большая работа.