Задать вопрос
  • Как вывести время выполнения по оси Y в графике matplotlib?

    @dmshar
    Способов есть много. Ну например:
    import pandas as pd
    import matplotlib.pyplot as plt
    from matplotlib.dates import DateFormatter
    dt=['2022-01-07 Пт', '2022-01-08 Сб', '2022-01-09 Вс', '2022-01-10 Пн', '2022-01-11 Вт', '2022-01-12 Ср', '2022-01-13 Чт', '2022-01-14 Пт', '2022-01-15 Сб', '2022-01-16 Вс', '2022-01-17 Пн']
    ['04:08:42', '02:14:29', '02:11:29', '02:35:51', '02:50:42', '02:34:17', '02:29:04', '03:05:52', '02:43:35', '02:10:27', '04:17:31']
    dur=['04:08:42', '02:14:29', '02:11:29', '02:35:51', '02:50:42', '02:34:17', '02:29:04', '03:05:52', '02:43:35', '02:10:27', '04:17:31']
    df = pd.DataFrame({'Date':dt, 
                       'Dur': dur})
    df['Dur'] = pd.to_timedelta(df['Dur'])
    df['Dur'] = pd.to_datetime(df['Dur'].values.astype('datetime64[D]'))
    
    fig, ax = plt.subplots()
    myFmt = DateFormatter("%H:%M:%S")
    ax.yaxis.set_major_formatter(myFmt)
    
    ax.plot(df['Date'], df['Dur'])


    Результат:
    61e56a22d742e091710866.png

    Или даже без использования Pandas:
    import datetime 
    import matplotlib.pyplot as plt
    from matplotlib.dates import DateFormatter
    dt=['2022-01-07 Пт', '2022-01-08 Сб', '2022-01-09 Вс', '2022-01-10 Пн', '2022-01-11 Вт', '2022-01-12 Ср', '2022-01-13 Чт', '2022-01-14 Пт', '2022-01-15 Сб', '2022-01-16 Вс', '2022-01-17 Пн']
    ['04:08:42', '02:14:29', '02:11:29', '02:35:51', '02:50:42', '02:34:17', '02:29:04', '03:05:52', '02:43:35', '02:10:27', '04:17:31']
    dur=['04:08:42', '02:14:29', '02:11:29', '02:35:51', '02:50:42', '02:34:17', '02:29:04', '03:05:52', '02:43:35', '02:10:27', '04:17:31']
    dlt=[]
    for dr in dur:
        dlt.append(datetime.datetime.strptime(dr,"%H:%M:%S"))
    fig, ax = plt.subplots()
    myFmt = DateFormatter("%H:%M:%S")
    ax.yaxis.set_major_formatter(myFmt)
    ax.plot(dt, dlt)
    Ответ написан