根据日期在matplotlib中指定x轴

时间:2019-06-25 01:16:34

标签: python pandas matplotlib

我正在使用联邦储备局提供的每月数据。但是,我只想绘制10年的数据,因此我将.tail()的10 x 12个月= 120表示月度数据,将10 x 4季度表示为季度。我的难题是,当我绘制数据帧时,它只在x轴上每个月绘制一次,而我只希望每个图形每年有1个刻度。

# Load in data from .csv files only using the 10 most recent years of data, 120 for monthly 40 for quarterly
federal_funds_df = pd.read_csv("data/FEDFUNDS.csv").tail(120)
CPI_df = pd.read_csv("data/CPIAUCSL.csv").tail(120)
unemployment_df = pd.read_csv("data/UNRATE.csv").tail(120)
real_GDP_df = pd.read_csv("data/GDPC1.csv").tail(40)

# Initialize the plot figure
plt.figure(figsize=(4, 1))
plt.suptitle("U.S. Economic Indicators")

# Effective Federal Funds Rate Plot
plt.subplot(141)
plt.plot(federal_funds_df.DATE, federal_funds_df.FEDFUNDS, label="Federal Funds Rate")
plt.legend(loc='best')

# Consumer Price Index Plot
plt.subplot(142)
plt.plot(CPI_df.DATE, CPI_df.CPIAUCSL, label="Consumer Price Index")
plt.legend(loc='best')

# Civilian Unemployment Rate Plot
plt.subplot(143)
plt.plot(unemployment_df.DATE, unemployment_df.UNRATE, label="Unemployment Rate")
plt.legend(loc='best')

# Real Gross Domestic Product Plot
plt.subplot(144)
plt.plot(real_GDP_df.DATE, real_GDP_df.GDPC1, label="Real GDP")
plt.legend(loc='best')

# Show plots fullscreen
mng = plt.get_current_fig_manager()
mng.window.state('zoomed')
plt.show()

.csv数据示例:

DATE,FEDFUNDS
1954-07-01,0.80
1954-08-01,1.22
1954-09-01,1.06
1954-10-01,0.85
1954-11-01,0.83
1954-12-01,1.28

1 个答案:

答案 0 :(得分:0)

您应将日期转换为date time格式。如果发布了输入数据的样本,将会更容易。但是如下所示:

pd.to_datetime(df['Date'], format= '%d/%m/%y')

然后,您可以每年对想要绘制的任何项目执行groupby。有关更具体的答案,请发布一些数据。

另请参阅此帖子:Groupby month and year