我有以下代碼:
import pandas as pd
from pandas import DataFrame as df
import matplotlib
from pandas_datareader import data as web
import matplotlib.pyplot as plt
import datetime
import warnings
warnings.filterwarnings("ignore")
from matplotlib import dates as mdates
start = datetime.date(2021,1,1)
end = datetime.date.today()
stock = 'fb'
data = web.DataReader(stock, 'yahoo', start, end)
data.index = pd.to_datetime(data.index, format ='%Y-%m-%d')
data = data[~data.index.duplicated(keep='first')]
data.reset_index()
data['month'] = data.index.month
data['week'] = data.index.week
data['day'] = data.index.day
data = data.reset_index()
del data['Date']
data.set_index('month',append=True,inplace=True)
data.set_index('week',append=True,inplace=True)
data.set_index('day',append=True,inplace=True)
fig, ax = plt.subplots(dpi=300, figsize =(15,4))
plt.plot(data.index.get_level_values(0), data['Close'])
locator = mdates.MonthLocator()
formatter = mdates.ConciseDateFormatter(locator)
ax.xaxis.set_major_locator(locator)
ax.xaxis.set_major_formatter(formatter)
plt.show()
此代碼生成以下資料幀:

如您所見,data. 在這種特殊情況下,我洗掉了年份,因為我要分析的資料不是金融時間序列資料。因此,我需要繪圖從 Jan 開始,而不是列印 1970。因此mdates.MonthLocator()在繪圖的 x 軸上添加 1970。有什么辦法可以洗掉年份標簽并讓情節從一月開始?

uj5u.com熱心網友回復:
我相信這是一個錯誤。我建議將月、周、日作為日期時間物件轉換為單列。
import numpy as np
import pandas as pd
pd.set_option('display.max_rows', 1000)
pd.set_option('display.max_columns', 1000)
pd.set_option('display.width', 1000)
date = np.array([1, 2, 3, 4, 5], dtype='str')
month = np.array([1, 2, 3, 4, 5], dtype='str')
year = np.array([2012, 2012, 2012, 2012, 2012, ], dtype='str')
df = pd.DataFrame({'date': date,
'month': month,
'year': year})
datetime = []
i, x, y = df.date, df.month, df.year
datetime.append(i '/' x '/' y)
for i in datetime:
df = df.assign(FullDate=i)
print(df)
輸出:
date month year FullDate
0 1 1 2012 1/1/2012
1 2 2 2012 2/2/2012
2 3 3 2012 3/3/2012
3 4 4 2012 4/4/2012
4 5 5 2012 5/5/2012
Process finished with exit code 0
然后,將其用作 x 軸。這樣 PYPLOT API 將自動檢測重復項并顯示類似的軸但沒有錯誤 - 希望如此。
ax1.set_xticklabels(labels=[''])您還可以手動配置選項以更改 x 軸標簽并可能將其洗掉。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/380498.html
標籤:Python 熊猫 matplotlib
