Python 使datetime列在Matplotlib X轴上显示为日期而不是数字

Python 使datetime列在Matplotlib X轴上显示为日期而不是数字,python,datetime,pandas,matplotlib,Python,Datetime,Pandas,Matplotlib,使用pandas并想知道为什么日期列没有显示为实际日期(type=pandas.tslib.Timestamp),而是显示为数字 以这个可复制的例子: todays_date = datetime.datetime.now().date() columns = ['month','A','B','C','D'] _dates = pd.DataFrame(pd.date_range(todays_date-datetime.timedelta(10), periods=150, freq='

使用pandas并想知道为什么日期列没有显示为实际日期(type=pandas.tslib.Timestamp),而是显示为数字

以这个可复制的例子:

todays_date = datetime.datetime.now().date()

columns = ['month','A','B','C','D']

_dates = pd.DataFrame(pd.date_range(todays_date-datetime.timedelta(10), periods=150, freq='M'))
_randomdata = pd.DataFrame(np.random.randn(150, 4))

data = pd.concat([_dates, _randomdata], axis=1)

data.plot(figsize = (10,6))

如您所见,x轴显示为数字,而不是日期

2个问题:

a) 如何更改它,使实际日期显示在x轴上?
b) 如果我希望显示更多/更少的月份,如何更改x轴上记号和记号标签的频率


谢谢大家

只需使用日期范围作为数据帧的索引:

todays_date = datetime.datetime.now().date()

columns = ['A','B','C','D']

data = pd.DataFrame(data=np.random.randn(150, 4),
                    index=pd.date_range(todays_date-datetime.timedelta(10), periods=150, freq='M'), 
                    columns=columns)
data.plot(figsize = (10,6))

只需使用日期范围作为数据框的索引:

todays_date = datetime.datetime.now().date()

columns = ['A','B','C','D']

data = pd.DataFrame(data=np.random.randn(150, 4),
                    index=pd.date_range(todays_date-datetime.timedelta(10), periods=150, freq='M'), 
                    columns=columns)
data.plot(figsize = (10,6))

如果我希望显示更多/更少的月份/年份,我如何更改x轴上的刻度和刻度标签的频率?我认为这是最好的答案。使用matplotlib的日期模块。如果希望显示更多/更少的月份/年份,如何更改x轴上刻度和刻度标签的频率?我认为这是最好的答案。使用matplotlib的日期模块。