我做了兩條曲線。兩者都取決于日期,第二個(擴展)應該出現在第一個之后的日期范圍內,但它只會得到以下結果:

這是我的代碼:
import pandas_datareader as web
import pandas as pd
import matplotlib.pyplot as plt
stock = web.DataReader('MMM', data_source="yahoo", start='2021-01-01', end='2021-11-12')
stock = stock.filter(["Adj Close"])
extend = pd.DataFrame({'Date': ["2021-11-15", "2021-11-16"], 'Adj Close': [170, 171]})
extend.set_index('Date')
plt.figure(figsize=(16, 8))
plt.plot(stock["Adj Close"])
plt.plot(extend[["Adj Close"]])
plt.show()
我認為問題與索引列有關,但我沒有找到洗掉它的方法。
uj5u.com熱心網友回復:
我相信傳遞繪圖的值會有所幫助,因為主要問題是 web.DataReader 將索引作為DateTime范圍回傳,而您添加的資料型別為object。我相信這種不兼容性會導致您遇到問題。請嘗試:
plt.plot(x=stock.index,y=stock['Adj Close'])
plt.plot(x=pd.to_datetime(extend['Date'],infer_datetime_format=True),y=extend['Adj Close'])
plt.show()
或者(我認為這可能會更好)我建議您將extend資料框附加到原始資料框。我不打算使用,web.DataReader但它應該與手動創建資料集的作業方式相同:
df = pd.DataFrame(np.random.randint(100,200,10).tolist(),index =pd.date_range(start='2021-10-01',periods=10,freq='d')).rename(columns={0:'Adj Close'}) ##This should be the result of the DataReader
df = df.append(pd.DataFrame([180,174],index=pd.date_range(start='2021-11-15',periods=2)).rename(columns={0:'Adj Close'})) ##Data being added manually
繪制這個:
plt.plot(df['Adj Close'])
plt.show()
回傳:

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/357839.html
標籤:Python 熊猫 matplotlib 索引
