Вопрос или проблема
У меня есть датафрейм (df
), который содержит данные о выполнении задания в разные временные интервалы. Он включает в себя следующие детали о выполнении задания:
- Время начала задания (
START
) - Время окончания задания (
END
) - Временной интервал (
interval
), т.е.END
–START
.
Небольшая часть датафрейма представлена ниже.
Датафрейм (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-ось
– Интервал
Некоторые предложенные альтернативные методы визуализации этих данных:
-
Гистограмма y-оси. Проверьте распределение временных интервалов
df.plot.hist(by='interval', bins=10) #попробуйте изменить размер бинов
-
Постройте меньшие подмножества данных, если порядок важен, например,
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()
Альтернативные методы визуализации:
-
Гистограмма: Это поможет вам увидеть распределение временных интервалов.
df['interval'].plot.hist(bins=10) plt.title('Гистограмма временных интервалов') plt.xlabel('Временной интервал') plt.ylabel('Частота') plt.show()
-
Частичные графики: Если ваши данные большие, вы можете разделить их на меньшие группы для более детального анализа.
df[:100].plot(x='START', y='interval', kind='line') plt.title('Временные интервалы для первых 100 задач') plt.xlabel('Время начала (START)') plt.ylabel('Временной интервал (interval)') plt.show()
-
Групповая визуализация: Если ваши данные имеют периодичность (например, ежедневно или ежечасно), вы могли бы рассмотреть возможность визуализации разных периодов в разных цветах для лучшего сравнения.
Это даст вам ясное представление о том, как временные интервалы варьируются в зависимости от времени начала задачи. Убедитесь, что ваши данные корректно отформатированы и отображены, чтобы достичь наилучших результатов в визуализации.