2017-03-10 228 views
2

我有一個非常簡單的一組數據,如下所示。我正在尋找一種方法來繪製這個堆積的條形圖並將其格式化爲x軸(日期),因此它始於1996年3月31日,並於2016年3月31日結束,增量爲365天。我寫的代碼是繪製每一個日期,因此x軸非常聚集,不可讀。在x軸熊貓Matplotlib操作日期

Datafame: 

Date    A    B 
1996-31-12  10   3 
1997-31-03  5    6 
1997-31-07  7    5 
1997-30-11  3    12 
1997-31-12  4    10 
1998-31-03  5    8 
. 
. 
. 
2016-31-12  3    9 

回答

2

這是一個類似的問題:Pandas timeseries plot setting x-axis major and minor ticks and labels

您可以管理這個使用matplotlib本身,而不是大熊貓。

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

# if your dates are strings you need this step 
df.Date = pd.to_datetime(df.Date) 

fig,ax = plt.subplots() 
ax.plot_date(df.Date,df.A) 
ax.plot_date(df.Date,df.B) 
ax.xaxis.set_major_locator(mdates.YearLocator()) 
ax.xaxis.set_major_formatter(mdates.DateFormatter('%b\n%Y')) 
plt.show() 
+0

我試過上面的代碼,我收到一條錯誤消息:AttributeError:'str'對象沒有屬性'toordinal'。有任何想法嗎? – spacedinosaur10

+1

哦,你的日期字符串?請參閱編輯答案。 – bernie

+0

我想我現在有另一個問題,似乎無法找出是我需要一個堆積的條形圖。我嘗試添加kind = bar和stacked = true,但似乎沒有任何工作與plot_date功能 – spacedinosaur10