Итак, у меня есть 2 списка значений: один со значениями температуры (временный список) и один со значениями времени (временный список).
Я использую этот код для построения значений:
n = 0
bettertime = []
sizeoflist = len(timelist)
while n < sizeoflist:
newtime = datetime.strptime(timelist[n], "%H:%M:%S")
bettertime.append(newtime.strftime("%H:%M"))
n = n + 1
fig, ax = plt.subplots()
ax.plot(bettertime, templist)
plt.show()
И когда я его запустил, я получил следующие результаты:
![results of plotting](https://i.stack.imgur.com/mC9Cp.png)
Значения на оси времени отображаются неправильно. Я также пытался, но я только что обрезал значения (просто нанося первые 10 значений):
ax.set(xlim=(0, 10))
Итак, после некоторых исследований я обнаружил, что мой список времени (timelist) представляет собой список строк, не в формате datetime, поэтому matplotlib не знает, как его уменьшить.
Как мне уместить значения в графике? (Например, для templist на оси Y были установлены автоматы c) (я хочу получить как 10 значений времени на графике, но от максима до минимума, а не только первые 10 значений списка)
И, как примечание, списки (timelist и templist) являются списками произвольной длины (равной длины, len (timelist) равен len (timelist), если это вообще важно)
РЕДАКТИРОВАТЬ:
Решение:
fmt = mdates.DateFormatter('%H:%M')
bettertimelist = [datetime.strptime(i, '%H:%M:%S') for i in timelist]
fig.autofmt_xdate()
ax.xaxis.set_major_formatter(fmt)