если это относится к вашему другому вопросу , я предлагаю вам вообще не использовать порядковый номер. Вы можете просто использовать объекты datetime и соответствующим образом отформатировать график:
from datetime import datetime
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
# some dummy data...
data_to_plot = np.array([1,3,2,4])
# taken from the linked question:
yr = np.array([1946, 1946, 1946, 1946], dtype=np.int)
mon = np.array([1, 1, 1, 1], dtype=np.int)
day = np.array([1, 1, 1, 1], dtype=np.int)
hr = np.array([1, 2, 3, 4], dtype=np.int)
# cast year/month/day/hour to datetime object:
newdates = [datetime(y,m,d,h) for y, m, d, h in zip(yr, mon, day, hr)]
# examplary plot
fig, ax = plt.subplots(1)
plt.plot(newdates, data_to_plot)
# format the tick labels:
xfmt = mdates.DateFormatter('%Y-%m-%d %H h')
ax.xaxis.set_major_formatter(xfmt)
# make one label every hour:
hours = mdates.HourLocator(interval = 1)
ax.xaxis.set_major_locator(hours)
# rotate the labels:
plt.xticks(rotation=45)
# adjust the canvas so that the labels are visible:
plt.subplots_adjust(top=0.90, bottom=0.22, left=0.10, right=0.9)
plt.show()
введите описание изображения здесь