Python ValueError:年份超出pyplot的范围

Python ValueError:年份超出pyplot的范围,python,matplotlib,Python,Matplotlib,我正在遍历目录中的文件,并将所有图形保存到pdf文件中。日期的格式如下20150101 但它抛出了一个错误: ValueError:年份超出范围 样本数据 import os from matplotlib.backends.backend_pdf import PdfPages import pandas as pd import matplotlib.pyplot as plt import datetime as dt pp = PdfPages('multipage.pdf') p

我正在遍历目录中的文件,并将所有图形保存到pdf文件中。日期的格式如下
20150101

但它抛出了一个错误:

ValueError:年份超出范围

样本数据

import os
from matplotlib.backends.backend_pdf import PdfPages
import  pandas as pd
import matplotlib.pyplot as plt
import datetime as dt

pp = PdfPages('multipage.pdf')

pth = "D:/Technical_Data/"
for fle in os.listdir(pth):
    df = pd.read_csv(os.path.join(pth, fle),usecols=(0, 4))
    if not df.empty:
       df=df.astype(float)
       days = df['indx']
       value = df['Close']
       plt.plot_date(x=days, y=value,fmt="r-")
       plt.title(fle)
       plt.ylabel("Price")
       plt.grid(True)
       pp.savefig()
pp.close()

您需要将df['indx']转换为DatetimeIndex

indx    open    High    Low Close   Volume
20140103    31.9823 32.1511 31.8382 32.1213 2034100
20140103    5.28    5.29    5.26    5.27    10387300
20140103    33.9    34.03   33.77   34  930800
20140103    10.62   10.63   10.51   10.6    2004500
20140103    3.42    3.49    3.42    3.49    3837600
20140103    1.69    1.71    1.685   1.705   6870300
20140103    42.5    43.61   42.3    43.47   255500

问题是天数列表的格式。您必须将这些值转换为DateTime类型或表示自0001-01-01 UTC起天数的浮点值

从matplotlib.pyplot:

绘图日期(x,y,fmt='bo',tz=None,xdate=True,ydate=False,**kwargs)

x和/或y可以是自UTC 0001-01-01以来表示为浮动日的一系列日期


没有示例输入很难调试代码。请打印
days
变量的值并发布,我怀疑问题出在那里。@TonyBabarino在问题中添加
# df=df.astype(float) # do not covert yymmdd to float
days = pd.to_datetime(df['indx'].astype(str), format='%Y%m%d')
plt.plot_date(x=days, y=value, fmt="r-")