matplotlib处理日期坐标轴

当日期数据作为图表的坐标轴时通常需要特殊处理,尤其是显示股票数据信息的时候,图例如下:

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')
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容