Я посмотрел на другие вопросы и не нашел их, чтобы помочь в решении моей проблемы. Для справки, я просмотрел эти темы:
Моя проблема в том, что, несмотря на то, что индекс моего Pandas DataFrame является типом datetime dtype, я все равно получаю следующую ошибку:
ValueError: view limit minimum -36879.020000000004 is less than 1 and is an invalid Matplotlib date value. This often happens if you pass a non-datetime value to an axis that has datetime units
Из этого кода:
fig, ax1 = plt.subplots(figsize=(11,5))
color = 'tab:blue'
ax1.set_title('7 Day Avg New Cases', fontsize=16)
ax1.set_xlabel('month', fontsize=16)
ax1.set_ylabel('Avg New Cases', fontsize=16, color=color)
ax2 = sns.barplot(x='date', y='new_pos', data = df_st, palette='OrRd')
ax1.tick_params(axis='y')
ax1.grid(False)
ax2 = ax1.twinx()
color = 'tab:red'
ax2.set_ylabel('% Positive', fontsize=16, color=color)
ax2 = sns.lineplot(x='date', y='pct_pos', data = df_st, sort=False, color=color)
ax2.tick_params(axis='y', color=color)
ax2.grid(False)
plt.show()
Однако, если я запустил вышеуказанное в двух частях, это не сработает:
fig, ax1 = plt.subplots(figsize=(11,5))
color = 'tab:blue'
ax1.set_title('7 Day Avg New Cases', fontsize=16)
ax1.set_xlabel('month', fontsize=16)
ax1.set_ylabel('Avg New Cases', fontsize=16, color=color)
ax2 = sns.barplot(x='date', y='new_pos', data = df_st, palette='OrRd')
ax1.tick_params(axis='y')
ax1.grid(False)
Что возвращает (гистограмма сверху code):
А затем запустите этот код:
color = 'tab:red'
ax2.set_ylabel('% Positive', fontsize=16, color=color)
ax2 = sns.lineplot(x='date', y='pct_pos', data = df_st, sort=False, color=color)
ax2.tick_params(axis='y', color=color)
ax2.grid(False)
plt.show()
, который возвращает (график из приведенного выше кода):
Данные фрейма данных:
new_pos pct_pos date
4141 120.0 0.03 2020-06-17
4142 462.0 0.03 2020-06-16
4143 259.0 0.03 2020-06-15
4144 0.0 0.03 2020-06-14
4145 0.0 0.03 2020-06-13
4146 140.0 0.03 2020-06-12
4147 177.0 0.03 2020-06-11
4148 72.0 0.03 2020-06-10
4149 66.0 0.03 2020-06-09
4150 114.0 0.03 2020-06-08
4151 146.0 0.03 2020-06-07
4152 92.0 0.03 2020-06-06
4153 96.0 0.03 2020-06-05
4154 75.0 0.03 2020-06-04
4155 64.0 0.03 2020-06-03
4156 33.0 0.03 2020-06-02
4157 59.0 0.03 2020-06-01
4158 58.0 0.03 2020-05-31
4159 54.0 0.03 2020-05-30
4160 45.0 0.03 2020-05-29
Есть идеи, как решить эту проблему?