У меня есть данные временного ряда, как показано ниже, где данные состоят из года и недели. Итак, данные с 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');
проблема в том, что 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')
Выходной график
Рад слышать. Если есть какие-либо другие знания, пожалуйста, добавьте сюда и закройте вопрос
Комбинация года и номера недели не является непрерывной, так что это результат. Поэтому его необходимо преобразовать в данные временного ряда.