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 шт):
Если не делать вызов plt.figure()
, то каждый следующий вызов какой-то отрисовки, например, plt.bar(...)
происходит на том же графике, он дорисовывает данные на той же картинке. Чтобы рисовка была каждый раз "с чистого листа", нужно каждый раз в начале отрисовки вызывать plt.figure()
:
...
if len(y)==7:
plt.figure() # <-- начинаем с пустой картинки
plt.bar(x, y, label='Сумма продаж')
...