【问题标题】:numbers instead of date in my python plot我的python图中的数字而不是日期
【发布时间】:2020-08-05 22:03:31
【问题描述】:

我试图绘制股票价格,但我遇到了一个小问题:我的图表上的日期有误。

import pandas as pd
from pandas_datareader import data
# Set the start and end date
start_date = '1990-01-01'
end_date = '2019-02-01'
# Set the ticker
ticker = 'AAPL'
# Get the data
data = data.get_data_yahoo(ticker, start_date, end_date)
data.head()
import matplotlib.pyplot as plt
data['Adj Close'].plot()
plt.show()

我得到的不是日期:3960 等。

【问题讨论】:

    标签: python date plot charts finance


    【解决方案1】:

    您可以使用matplotlib num2date 进行转换。

    from matplotlib.dates import num2date
    
    plt.plot(num2date(data['date']), data['Adj Close'])
    
    plt.show()
    
    

    您需要传递num2date 任何包含日期的列,我以'dates' 为例。

    事实上,只需从 matplotlib 调用 plot 而不是从 pandas 调用(因为您是从数据帧调用它)可能没有 num2date 就可以解决问题。

    【讨论】:

    • 我试过了,但我得到了一个错误: epoch2num 函数在 Matplotlib 3.3 中已被弃用,并将在两个次要版本中删除。 base = dates.epoch2num(dt.asi8 / 1.0e9)
    【解决方案2】:

    尝试转换日期字符串

    from datetime import datetime
    start_date = datetime.strptime('1990-01-01','%Y-%m-%d')
    end_date = datetime.strptime('2019-02-01', '%Y-%m-%d')
    

    【讨论】:

      猜你喜欢
      • 2018-10-13
      • 2020-03-26
      • 2020-03-11
      • 2019-10-02
      • 2022-10-24
      • 1970-01-01
      • 2020-04-21
      • 1970-01-01
      相关资源
      最近更新 更多