Python: Как построить график временного интервала из DataFrame в Pandas

Вопрос или проблема

У меня есть датафрейм (df), который содержит данные о выполнении задания в разные временные интервалы. Он включает в себя следующие детали о выполнении задания:

  1. Время начала задания (START)
  2. Время окончания задания (END)
  3. Временной интервал (interval), т.е. ENDSTART.

Небольшая часть датафрейма представлена ниже.

Датафрейм (df):

  END    |  START   |  interval
1423.0   |  1357.0  |    66.0
33277.0  |  33325.0 |   -48.0
42284.0  |  42250.0 |    34.0
53466.0  |  53218.0 |   248.0
62158.0  |  62073.0 |    85.0

Я хочу построить график с x-осью как временной меткой и y-осью с interval. Я пытался сделать это с использованием времени START, но это не дало правильного результата. Как мы можем это сделать?

Код

fig_dims = (12, 10)
fig, ax = plt.subplots(figsize=fig_dims)

sns.lineplot(x = 'START', y = 'interval', data = df, ax = ax)

Выходные данные
введите описание изображения здесь

Требуемый выход
x-ось – Временная метка
y-ось – Интервал

Некоторые предложенные альтернативные методы визуализации этих данных:

  1. Гистограмма y-оси. Проверьте распределение временных интервалов

    df.plot.hist(by='interval', bins=10) #попробуйте изменить размер бинов

  2. Постройте меньшие подмножества данных, если порядок важен, например, df[:100].plot(). Кроме того, если в данных имеется периодичность, например, ежедневно, ежечасно и т.д., вы можете наложить каждый час друг на друга (в другом цвете) для сравнения различий между периодами.

Ответ или решение

Для того чтобы построить график временных интервалов из DataFrame в Pandas, вы можете использовать библиотеку Matplotlib в сочетании с Seaborn. В данном случае, чтобы корректно отобразить временные метки по оси X и интервалы по оси Y, необходимо убедиться, что вы используете правильные временные метки для построения графика.

Исходя из предоставленных данных, вы хотите использовать столбец START в качестве оси X и interval в качестве оси Y. Но если вы хотите более точно визуализировать продолжительность работы, вам также может быть полезно воспользоваться дополнительными методами визуализации.

Вот пример, как можно построить график с использованием библиотеки Seaborn:

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# Предположим, что ваш DataFrame выглядит следующим образом:
data = {
    'START': [1357.0, 33325.0, 42250.0, 53218.0, 62073.0],
    'END': [1423.0, 33277.0, 42284.0, 53466.0, 62158.0],
    'interval': [66.0, -48.0, 34.0, 248.0, 85.0]
}

df = pd.DataFrame(data)

# Размер графика
fig_dims = (12, 10)
fig, ax = plt.subplots(figsize=fig_dims)

# Плотите график
sns.lineplot(x='START', y='interval', data=df, ax=ax)

# Настройте видимость графика
ax.set_title('Временные интервалы исполнения задач')
ax.set_xlabel('Время начала (START)')
ax.set_ylabel('Временной интервал (interval)')

# Показать график
plt.show()

Альтернативные методы визуализации:

  1. Гистограмма: Это поможет вам увидеть распределение временных интервалов.

    df['interval'].plot.hist(bins=10)
    plt.title('Гистограмма временных интервалов')
    plt.xlabel('Временной интервал')
    plt.ylabel('Частота')
    plt.show()
  2. Частичные графики: Если ваши данные большие, вы можете разделить их на меньшие группы для более детального анализа.

    df[:100].plot(x='START', y='interval', kind='line')
    plt.title('Временные интервалы для первых 100 задач')
    plt.xlabel('Время начала (START)')
    plt.ylabel('Временной интервал (interval)')
    plt.show()
  3. Групповая визуализация: Если ваши данные имеют периодичность (например, ежедневно или ежечасно), вы могли бы рассмотреть возможность визуализации разных периодов в разных цветах для лучшего сравнения.

Это даст вам ясное представление о том, как временные интервалы варьируются в зависимости от времени начала задачи. Убедитесь, что ваши данные корректно отформатированы и отображены, чтобы достичь наилучших результатов в визуализации.

Оцените материал
Добавить комментарий

Капча загружается...