Я выполнил весь шаг после моего вопроса здесь: Pandas Dataframe: как добавить вертикальную линию с меткой к столбчатой диаграмме, когда ваши данные являются временными рядами?
it должен был решить мою проблему, но когда я изменил тип графика на линию, вертикальная линия не появилась. Я копирую тот же код и меняю тип графика на строку вместо полосы:
как вы можете видеть с полосой, появляется вертикальная линия (красная).
# function to plot a bar
def dessine_line3(madataframe,debut_date , mes_colonnes):
madataframe.index = pd.to_datetime(madataframe.index,format='%m/%d/%y')
df = madataframe.loc[debut_date:,mes_colonnes].copy()
filt = (df[df.index == '4/20/20']).index
df.index.searchsorted(value=filt)
fig,ax = plt.subplots()
df.plot.bar(figsize=(17,8),grid=True,ax=ax)
ax.axvline(df.index.searchsorted(filt), color="red", linestyle="--", lw=2, label="lancement")
plt.tight_layout()
out:
но я просто меняю код, изменяя тип графика на линию: нет вертикальной линии, а также изменилась ось x (дата).
поэтому я написал другой код juste, чтобы нарисовать линию с вертикальной линией
ax = madagascar_maurice_case_df[["Madagascar Covid-19 Ratio","Maurice Covid-19 Ratio"]].loc['3/17/20':].plot.line(figsize=(17,7),grid=True)
filter = (df [df.index == '4/20 /20'−).index ax.axvline (df.index.searchsorted (filter), color = "red", linestyle = "-", lw = 2, label = "lancement") plt.show ()
, но результат тот же
после комментария ниже, вот мой последний код:
def dessine_line5(madataframe,debut_date , mes_colonnes):
plt.figure(figsize=(17,8))
plt.grid(b=True,which='major',axis='y')
df = madataframe.loc[debut_date:,mes_colonnes]
sns.lineplot(data=df)
lt = datetime.toordinal(pd.to_datetime('4/20/20'))
plt.axvline(lt,color="red",linestyle="--",lw=2,label="lancement")
plt.show()
и результат: