Как получить файл, подобный объекту, в matplotlib?

avatar
Yasiru
8 августа 2021 в 18:56
81
2
-2

Я использовал plt.plot(plot1['x'], plot1['y']) для создания графика из моего набора данных "plot1".

Я хочу получить файл, похожий на объект, из этого графика, как мне это сделать?

Вот полный код:

enter image description here

Источник
AKX
8 августа 2021 в 18:57
1

(a) Не публикуйте код в виде изображений! б) Что должно быть в файлоподобном объекте? Образ, может быть? В каком формате?

MattDMo
8 августа 2021 в 19:01
0

plt.savefig()?

Yasiru
8 августа 2021 в 19:02
0

Я хочу прикрепить сюжет к дискорду. Вставить, поэтому мне нужен файл, подобный объекту

Yasiru
8 августа 2021 в 19:02
0

plt.savefig() сохранит его локально, я хочу избежать этого

MattDMo
8 августа 2021 в 19:02
0

Поэтому используйте plt.savefig() и запишите его в объект BytesIO...

MattDMo
8 августа 2021 в 19:04
1

См. coderhelper.com/questions/8598673/…

mozway
8 августа 2021 в 19:08
0

BytesIO похож на FileIO, но с байтами вместо текста. Изображения, такие как png, используют байты. Позволяет сохранить файл «в памяти», а не на диске.

Ответы (2)

avatar
mozway
8 августа 2021 в 18:58
1

Итак, похоже, вы хотите сохранить свой график в формате, который можно копировать в мгновенных сообщениях:

import io, base64
picture = io.BytesIO()
plt.savefig(picture, format='png')
picture.seek(0)
picture_b64 = base64.b64encode(picture.read())
avatar
Yasiru
8 августа 2021 в 19:23
0

Решение,

import io

buf = io.BytesIO()
plt.savefig(buf, format='png')
buf.seek(0)
file = discord.File(buf, "image.png")
buf.close()
return file #  or do anything with the file