在x轴上以m / d / Y格式绘制日期

时间:2016-11-17 10:34:12

标签: python-3.x

我想生成一个图形图,我希望将日期显示为" 01/03 / 1991"格式,但我的代码我得到日期为" 1991年1月3日"。 下面是我用来生成图表的代码。任何人都可以帮我解决这个问题。

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 个答案:

答案 0 :(得分:1)

您将格式化程序应用于错误的对象。你应该把它应用到

ax1

喜欢这样

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