У меня проблема с DateFormatter, обнаружил значение x = 0, хотя даты должны быть правильно преобразованы с помощью mdates.date2num () и указания дат на x. Любая помощь была бы замечательной! Спасибо.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.pyplot import subplot
import matplotlib.dates as mdates
df_tmp = pd.DataFrame(np.zeros((3, 2)),
index=['2006-02-16',
'2006-02-17', '2006-02-18'])
df_tmp.index = pd.to_datetime(df_tmp.index)
t_num = mdates.date2num(df_tmp.index)
f = plt.figure(figsize=(6, 8))
ax = subplot(111)
c = ax.pcolor(t_num, np.arange(2), df_tmp.T)
date_format = mdates.DateFormatter('%D')
ax.xaxis_date()
ax.xaxis.set_major_formatter(date_format)
ax.set_ylim(0, 10)
ax.set_yticks(np.arange(10))
ax.set_yticklabels([f'my_label {i}' for i in np.arange(10)])
f.autofmt_xdate()
plt.show()
Как ни странно, когда я запускаю приведенный выше фрагмент как отдельный фрагмент кода, он работает нормально, но при встраивании в другой фрагмент кода я получаю сообщение об ошибке.
Есть что-нибудь, что может помешать? Еще я использую:
import matplotlib as mpl
mpl.rcParams.update(mpl.rcParamsDefault)
на всякий случай. Спасибо за любую помощь!
(Обратите внимание, что в коде я изменил f -> f2 на тот случай, если это мешает другим цифрам, ранее обозначенным как f)