@Tomorrow772

Module 'matplotlib.pyplot' has no attribute 'read'?

Хочу отправить фото в байтах, но не получилось...
Что можно сделать?
Я не хочу сохранять фото, а потом его отправлять. Терять скорость работы не охота (
index = ["16.08", "17.08", "18.08", "19.08", "20.08"] 
    values = [5,7,3,9,8] 
 
 
    plt.title("статистика", fontsize=15, color="#4169E1") 
 
 
    plt.tick_params(axis='y', which='both', left=False, labelleft=False, labelright=True, right=True) 
    plt.bar(index,values, color="#4ed44e") 
 
 
    fp = io.BytesIO() 
    img = Image.open(plt) 
    img.savefig(fp, "JPEG") 
    setattr(fp, "name", "image.jpeg") 
    fp.seek(0)

Ошибка:
img = Image.open(plt) 
  File "C:\Users\asus\AppData\Local\Programs\Python\Python39\lib\site-packages\PIL\Image.py", line 3074, in open 
    fp = io.BytesIO(fp.read()) 
AttributeError: module 'matplotlib.pyplot' has no attribute 'read'
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
@Tomorrow772 Автор вопроса
Ответ нашел
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@dmshar
А что у вас за каша в коде?
Сохранение созданного с помощью matplotlib графика выполняется с помощью метода
plt.savefig('имя файла')
Сами же методы построения графика типа "plt.bar" никаких файлов не создают и тем более - не сохраняют. (Все что они создают - это график на экран и объект типа
"BarContainer"). Но вы и его не сохраняете.
В свою очередь метод PIL.Image.open() ожидает в качества параметра "filename (string), pathlib.Path object or a file object". Ни под одно из этих описаний модуль matplotlib.pyplot (скрывающийся под псевдонимом plt) не подходит. И уж тем более атрибута 'read' не имеет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы