2016-11-17 87 views
0

我想生成一個圖形圖表,我想將日期顯示爲「01/03/1991」格式,但使用我的代碼獲取日期作爲「1991年1月3日」。 下面是我用來生成圖形的代碼。任何人都可以幫助我解決這個問題。以m/d/Y格式在x軸上繪製日期

import numpy as np 
import matplotlib.pyplot as plt 
import datetime as dt 
import matplotlib.dates as mdates 

dates = ['01/02/1991','01/03/1991','01/04/1991', '01/05/1991','01/06/1991','01/07/1991'] 

a = [0, 2.0, 3.0, 4.0, 5.0, 10.0] 
r = [dt.datetime.strptime(d,'%m/%d/%Y').date() for d in dates] 
s = [1.0, 4.0, 9.0, 16.0, 25.0, 40.0] 

fig, ax1 = plt.subplots() 

ax2 = ax1.twinx() 
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%m/%d/%Y')) 
plt.gca().xaxis.set_major_locator(mdates.DayLocator()) 
lns1 = ax1.plot(r, a, marker='o', label='No. of trip', linewidth=4) 
lns2 = ax2.plot(r, s, marker='o', linestyle='--', color='r', label='No. of customer', linewidth=4) 
plt.gcf().autofmt_xdate() 

ax1.set_xlabel('x') 
ax1.set_ylabel('y1', color='b') 
ax2.set_ylabel('y2', color='r') 

# added these three lines 
lns = lns1+lns2 
labs = [l.get_label() for l in lns] 
ax2.legend(lns, labs, loc=0) 
plt.show() 

回答

1

將格式器應用於錯誤的對象。你應該把它應用到

ax1 

像這樣

ax1.xaxis.set_major_formatter(mdates.DateFormatter('%m/%d/%Y')) 
+0

是我沒有像以前,但它給了我錯誤。現在我已修復它。非常感謝你 – nas