Цветовая диаграмма Matplotlib с датами выдает ошибку: «DateFormatter обнаружил значение x = 0», но дата не равна нулю - PullRequest
0 голосов
/ 18 июня 2020

У меня проблема с 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()

Как ни странно, когда я запускаю приведенный выше фрагмент как отдельный фрагмент кода, он работает нормально, но при встраивании в другой фрагмент кода я получаю сообщение об ошибке.

enter image description here

Есть что-нибудь, что может помешать? Еще я использую:

    import matplotlib as mpl
    mpl.rcParams.update(mpl.rcParamsDefault)

на всякий случай. Спасибо за любую помощь!

(Обратите внимание, что в коде я изменил f -> f2 на тот случай, если это мешает другим цифрам, ранее обозначенным как f)

1 Ответ

0 голосов
/ 19 июня 2020

В качестве частичного ответа

plt.close('all')

сделали свое дело. Не совсем понятно, почему. Любое дальнейшее понимание было бы здорово.

...