мой последний фрейм данных, который я использовал для построения
У меня есть фрейм данных с индексом DateTime и температурой в качестве значений. Хотите построить еженедельные и ежемесячные данные со временем по оси X и температурой по оси Y. Под еженедельными данными я подразумеваю построение данных за 7 дней на одном 24-часовом графике по оси X, чтобы я мог видеть, происходит ли какая-то закономерность.
Мой оригинальный кадр данных выглядит следующим образом:
Date Temperature
2017-04-05 11:18:00-04:00 32.716833
2017-04-05 11:19:00-04:00 32.635500
2017-04-05 11:20:00-04:00 32.547333
... ...
2017-07-20 20:37:00-04:00 35.219667
2017-07-20 20:38:00-04:00 35.240000
2017-07-20 20:39:00-04:00 35.233000
Вот мой код. Я пытаюсь построить график температуры, скользящей средней за 7 дней. 1
#Weekly with matplotlib sorting dates in correct order
import matplotlib.pyplot as plt
from datetime import time
import matplotlib.dates as mdates
import seaborn as sns
import numpy as np
sns.set(style="darkgrid")
i = 0
fig, ax = plt.subplots(figsize=(18,8))#figsize=(15,15)
markers=['o', '.', ',', 'x', '+', 'v', '^', '<', '>', 's', 'd']
i=0 # variable using for counter if i==7 (weekly)
#made a list of unique dates for loop
for date in dates:
# selecting dataframe for specific date
df = df_sub[df_sub.date == date]
plt.plot(df['NewTime'],df['TEMP'],markers[i],label=date)
i=i+1
if i % 1==0:
i = 0
print(date)
plt.plot(df['NewTime'],df['fifteenminavg'], label='Mean', linestyle='--',c='darkgrey')
# plt.xticks( rotation=25 )
# ax=plt.gca()
ax.set_xlim(["00:00:00", "23:59:59"])
plt.title("Skin Temperature (Week="+str(date)+")",fontsize=20)
# ax.set_xticks(np.linspace(0, 2*np.pi, 24, endpoint=True))
# ticks = ['12 AM', '1 AM', '2 AM', '3 AM', '4 AM', '5 AM', '6 AM', '7 AM','8 AM','9 AM','10 AM','11 AM','12 PM', '1 PM', '2 PM', '3 PM', '4 PM', '5 PM', '6 PM', '7 PM', '8 PM', '9 PM', '10 PM', '11 PM' ]
# ax.set_xticklabels(tickstime)
# ax=plt.gca()
# hours = mdates.HourLocator(interval = 1)
# h_fmt = mdates.DateFormatter('%H:%M:%S')
# ax.xaxis.set_major_locator(hours)
# ax.xaxis.set_major_formatter(h_fmt)
ax.set_ylabel('Temperature (°C)')
ax.set_xlabel('Time')
fig.autofmt_xdate()
plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)
fig.tight_layout()
plt.show()
fig, ax = plt.subplots(figsize=(18,8))#figsize=(15,15)
Вот мой выходной график ... вы можете видеть, что x-тики не имеют регулярных интервалов.
Я хочу, чтобы они были похожи на 12 часов утра, 6 часов утра, 12 часов вечера, 6 часов вечера, 12 часов утра
Сюжет с осью X по времени