Отображение даты в pandas.plot
Есть массив данных формата:
index | value
2005-03-01 | 0.945535
2005-03-02 | 0.944586
2005-03-04 | 0.788801
2005-03-05 | 0.416701
2005-03-07 | 0.283472
Есть данные за несколько месяцев каждого года (например с марта по август), поэтому когда строю скользящее среднее получается такой график:
Вопрос: как не отображать на оси Х тот период, когда данных нет. То есть последний месяц с данными 2005, а дальше сразу идет первый месяц с данными 2006.
import pandas as pd
import numpy as np
from numpy.random import default_rng
rng = default_rng()
index = np.union1d(pd.date_range(start='08/01/2005', end='03/01/2005', periods=100),
pd.date_range(start='08/01/2006', end='03/01/2006', periods=100))
loss_ss = pd.Series(rng.random(200), index=index)
loss_ss.rolling('30d').mean().plot()
Ответы (1 шт):
Автор решения: Илья Митусов
→ Ссылка
Как вариант, предложенный @strawdog:
index = np.union1d(pd.date_range(start='08/01/2005', end='03/01/2005', periods=100).date.astype('datetime64'),
pd.date_range(start='08/01/2006', end='03/01/2006', periods=100).date.astype('datetime64'))
loss_ss = pd.Series(rng.random(200), index=index)
plt.plot(loss_ss.rolling('30d').mean().values)
plt.xticks(range(0, 200, 20), index[range(0, 200, 20)])
plt.show()

