Próbuję wykreślić wartości temperatury w czasie z czasem sformatowanym jako HH: MM. Jestem w stanie ustawić powtarzające się xticks co 15 minut, ale pierwsze tiknięcie jest po raz pierwszy (np. 04:40).Matplotlib: xticks co 15 minut, począwszy od godziny
Czy istnieje sposób przeniesienia kleszczy na godzinę i współbieżne ćwierć-godziny (04:45, 05:00, 05:15 itd.)? Mój bieżący kod wygląda następująco:
import matplotlib.pyplot as plt
import matplotlib.dates as md
import datetime as dt
## Dummy times and temperatures
time = [dt.datetime(2017,2,15,4,40),dt.datetime(2017,2,15,4,46),dt.datetime(2017,2,15,4,52),dt.datetime(2017,2,15,4,58),dt.datetime(2017,2,15,5,4),dt.datetime(2017,2,15,5,10)]
temp = [7, 8, 9, 10, 11, 12]
## Plot the data
figtemp, ax = plt.subplots(1, 1)
ax.plot(time, temp)
## Set time format and the interval of ticks (every 15 minutes)
xformatter = md.DateFormatter('%H:%M')
xlocator = md.MinuteLocator(interval = 15)
## Set xtick labels to appear every 15 minutes
ax.xaxis.set_major_locator(xlocator)
## Format xtick labels as HH:MM
plt.gcf().axes[0].xaxis.set_major_formatter(xformatter)
Problem polega na tym, że trzeba znać godziny, w których dane pojawiają się wcześniej. Nie trzeba też wpisywać czasu ręcznie. – ImportanceOfBeingErnest
@ImportanceOfBeingErnest, pls sprawdził moją zredagowaną odpowiedź. Uważam, że twoje rozwiązanie jest bardziej eleganckie. – SparkAndShine
Tak, to rozwiązuje problem ręcznego ustawiania godzin i minut. Miły. Ale rzeczywiście jest to trochę skomplikowane dla zadania, które można wykonać w jednym wierszu. – ImportanceOfBeingErnest