python matplotlib не корректные данные

Всем доброго времени. Использую matplotlib в python для создания графиков. пытаюсь в цикле сделать графики для нескольких пользователей.

В итоге сохраняет для 1 верно, а для остальных погода на марсе. не пойму, что не так. если вызвать одного пользователя, то график верный, если в цикле для нескольких происходит какое то смещение, будто, данные пишутся со 2 пользователя, и дальше они записываются для каждого. Пробовал делать задержку, без результата.

def week_grafik():
    today = date.today()
    seller=users_id_api()
    for i in seller:
        x=['Пон-ник','Вторник','Среда', 'Четверг', 'Пятница', 'Суббота', 'Воск-нье']
        y=pos_info_graf_today(i[0])
        print(i[0],y)
        print(len(y),i[0])
        if len(y)==7:
            plt.bar(x, y, label='Сумма продаж')
            plt.xlabel('Неделя')
            plt.ylabel('Прибыль, в руб.')
            plt.legend()
            #plt.show()
            plt.savefig(f'{i[0]}-{today}.png')
            #plt.close(f'{i[0]}-{today}.png')
        else:
            print("Дней торговли меньше 7")
        time.sleep(30)
        print("Ожидание 30 секунд")
week_grafik()

Ответы (1 шт):

Автор решения: CrazyElf

Если не делать вызов plt.figure(), то каждый следующий вызов какой-то отрисовки, например, plt.bar(...) происходит на том же графике, он дорисовывает данные на той же картинке. Чтобы рисовка была каждый раз "с чистого листа", нужно каждый раз в начале отрисовки вызывать plt.figure():

        ...
        if len(y)==7:
            plt.figure() # <-- начинаем с пустой картинки
            plt.bar(x, y, label='Сумма продаж')
            ...
→ Ссылка