我有一個時間序列資料,如下所示,其中資料由年和周組成。因此,資料是從 2014 年第 1 周到 2015 年第 52 周。

現在,下面是上述資料的線圖

正如您所看到的,x 軸標簽并不是我想要實作的,因為 201453 之后的點應該是 201501,不應該有任何直線,也不應該達到 201499。我怎樣才能重新調整 xaxis到 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');
uj5u.com熱心網友回復:
問題是因為 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')
輸出圖

轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/476708.html
標籤:Python matplotlib 海运 数据科学 线图
