如何使用月/年分辨率绘制大熊猫时间序列(只需几行代码)?

Man*_*gia 0 plot matplotlib pandas

假设我们想绘制一个时间序列,例如:

import pandas as pd
import numpy as np

a=pd.DatetimeIndex(start='2010-01-01',end='2014-01-01' , freq='D')
b=pd.Series(np.randn(len(a)), index=a)
b.plot()
Run Code Online (Sandbox Code Playgroud)

结果是一个数字,其中x轴有多年作为标签,我想得到月份标签.有没有一种快速的方法(可能避免使用数十行复杂的代码调用matplotlib)?

Pau*_*l H 8

Pandas对Axes对象做了一些非常奇怪的事情,这使得很难避免matplotlib调用.

我就是这样做的

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import pandas as pd


a = pd.DatetimeIndex(start='2010-01-01',end='2014-01-01' , freq='D')
b = pd.Series(np.random.randn(len(a)), index=a)
fig, ax = plt.subplots()
ax.plot(b.index, b)
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m'))
Run Code Online (Sandbox Code Playgroud)

这给了我: 在此输入图像描述