отображать данные за несколько дней 24 часа в формате am / pm, но получаю нерегулярные переходы - PullRequest
0 голосов
/ 15 октября 2019

мой последний фрейм данных, который я использовал для построения

У меня есть фрейм данных с индексом 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 по времени

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...