matplot avline日期错误位置

2024-09-27 18:24:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要按日期绘制错误(这是每周测量的),并为特定日期添加一些垂直线。我的数据如下所示:

enter image description here

我试过:

import matplotlib.pyplot as pylt
pylt.xticks(rotation=90)
pylt.plot_date(det.dia_corte_fin_prediccion, det.avg_error_diario_semana, fmt='o', 
               tz=None, xdate=True, ydate=False)

fechas=list(det['fecha_baja'].unique())
fechas=[x for x in fechas if str(x) != 'nan']
for i in fechas:
    pylt.axvline(i, color='black')# esta fecha deberia ser unica



fechas=list(det['fec_ultima_fecha_creacion_sol_baja_anterior'].unique())
fechas.extend( list(det['fec_primera_fecha_creacion_sol_baja_posterior'].unique()))
fechas=[x for x in fechas if str(x) != 'nan']

for i in fechas:
    pylt.axvline(i, color='blue',zorder=0)

但我得到一个垂直线位置不正确的图:

enter image description here

我还将列的类型更改为datetime,但仍然遇到相同的问题:

columnas=det.filter(like='fec', axis=1).columns

for i in columnas:
    det[i]=pd.to_datetime(det[i])

问题是,如果日期不在轴上,它将在末尾绘制它

所以现在我需要创建轴中的所有日期来避免这个问题。我该怎么做

谢谢


Tags: inforif绘制nanlistuniquedet
1条回答
网友
1楼 · 发布于 2024-09-27 18:24:05

我认为正确的方法是将绘图类型更改为分散: 这样,它将在正确的位置添加日期,如果需要,在提供的原始日期之间添加日期,而不是在末尾添加日期

det.dia_corte_fin_prediccion=pd.to_datetime(det.dia_corte_fin_prediccion)
ax=pylt.scatter(det.dia_corte_fin_prediccion, det.avg_error_diario_semana)
pylt.axvline(pd.to_datetime('2019-08-06'), color='green')
pylt.axvline(pd.to_datetime('2019-08-11'), color='green')

相关问题 更多 >

    热门问题