Проблема: нужно преобразовать графическое изображение Matplotlib в base64 изображениеMatplotlib графическое изображение base64
Текущее решение: Сохранить matplot изображение в папке кэша и прочитать его с помощью метода чтения() и затем преобразовать в base64
Новая проблема: Досада: Нужно обходное решение, поэтому мне не нужно сохранять графику как изображение в любой папке. Я хочу просто использовать изображение в памяти. Выполнение ненужных операций ввода-вывода является плохой практикой.
def save_single_graphic_data(data, y_label="Loss", x_label="Epochs", save_as="data.png"):
total_epochs = len(data)
plt.figure()
plt.clf()
plt.plot(total_epochs, data)
ax = plt.gca()
ax.ticklabel_format(useOffset=False)
plt.ylabel(y_label)
plt.xlabel(x_label)
if save_as is not None:
plt.savefig(save_as)
plt.savefig("cache/cached1.png")
cached_img = open("cache/cached1.png")
cached_img_b64 = base64.b64encode(cached_img.read())
os.remove("cache/cached1.png")
return cached_img_b64
Спасибо! Отлично работает! – KenobiShan
Если вы используете Python 3 или выше, вам нужно использовать 'io.BytesIO', как указано @nobar по адресу https://stackoverflow.com/a/18284900/1802726. –