当日期数据作为图表的坐标轴时通常需要特殊处理,尤其是显示股票数据信息的时候,图例如下:
1 引用库
from matplotlib.dates import DateFormatter, WeekdayLocator, DayLocator, MONDAY,YEARLY
1.1 获取每月,每日,每周的数据
获取每月
monthdays = MonthLocator()
获取每个周一
mondays = WeekdayLocator(MONDAY) # 主要刻度
获取每日
alldays = DayLocator() # 次要刻度
1.2 设定主/次刻度
ax.xaxis.set_major_locator(mondays)
ax.xaxis.set_minor_locator(alldays)
1.3 设定格式
mondayFormatter = DateFormatter('%Y-%m-%d') # 如:5-29-2017
dayFormatter = DateFormatter('%d') # 如:11
ax.xaxis.set_major_formatter(mondayFormatter)
1.4. 字符串旋转
有时候日期时间太长,需要旋转才能生效,注意每个axes都需要单独设定
for label in ax1.get_xticklabels():
label.set_rotation(30)
label.set_horizontalalignment('right')
或者
plt.setp(ax.get_xticklabels(), rotation=45, horizontalalignment='right')