Проблема визуализации данных временных рядов

У меня есть данные временного ряда, как показано ниже, где данные состоят из года и недели. Итак, данные с 2014 года 1-я неделя по 2015 год 52 недели.

Проблема визуализации данных временных рядов

Теперь ниже приведен линейный график вышеупомянутых данных.

Проблема визуализации данных временных рядов

Как вы можете видеть, маркировка оси x не совсем то, чего я пытался добиться, поскольку точка после 201453 должна быть 201501, и не должно быть прямой линии, и она не должна быть до 201499. Как я могу масштабировать ось x точно в соответствии с в столбец Due_date? Ниже приведен код

rand_products = np.random.choice(Op_2['Sp_number'].unique(), 3)
selected_products = Op_2[Op_2['Sp_number'].isin(rand_products)][['Due_date', 'Sp_number', 'Billing']]

plt.figure(figsize=(20,10))
plt.grid(True)

g = sns.lineplot(data=selected_products, x='Due_date', y='Billing', hue='Sp_number', ci=False, legend='full', palette='Set1');

Комбинация года и номера недели не является непрерывной, так что это результат. Поэтому его необходимо преобразовать в данные временного ряда.

r-beginners 15.05.2022 17:41
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
1
21
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

проблема в том, что 201401... и т. д. читаются как числа, и именно по этой причине на линейной диаграмме есть этот пробел. Чтобы исправить это, вам нужно будет изменить формат чисел на дату и построить его. Поскольку полные данные недоступны, ниже приведен фрейм данных с двумя столбцами, который имеет Due_date в виде целого числа YYYYWW. Платежная колонка представляет собой набор случайных чисел. Используйте метод здесь, чтобы преобразовать целые числа в формат даты и построить график. Зазор будет устранен....

import numpy as np
import pandas as pd
import random
import matplotlib.pyplot as plt
import seaborn as sns

Due_date = list(np.arange(201401,201454)) #Year 2014
Due_date.extend(np.arange(201501,201553)) #Year 2915
Billing = random.sample(range(500, 1000), 105) #billing numbers
df = pd.DataFrame({'Due_date': Due_date, 'Billing': Billing})
df.Due_date = df.Due_date.astype(str)
df.Due_date = pd.to_datetime(df['Due_date']+ '-1',format = "%Y%W-%w") #Convert to date

plt.figure(figsize=(20,10))
plt.grid(True)

ax = sns.lineplot(data=df, x='Due_date', y='Billing', ci=False, legend='full', palette='Set1')

Выходной график

Graph without the gap

Рад слышать. Если есть какие-либо другие знания, пожалуйста, добавьте сюда и закройте вопрос

Redox 16.05.2022 22:23

Другие вопросы по теме