Matplotlib设置坐标轴日期格式
绘制双坐标轴
ax2=ax1.twinx()
创建了一个独立的Y轴,共享了X轴。双坐标轴!
类似的还有twiny()
设置坐标轴日期格式
需要导入matplotlib下的dates:
import matplotlib.dates as mdates
使用set_major_locator()方法设置主刻度标签的位置
ax.xaxis.set_major_locator(locator)
使用set_major_formatter()方法设置主刻度标签文本的格式
ax.xaxis.set_major_formatter(formatter)
日期格式器
通过DateFormatter生成日期格式器对象,比如:
formatter = DateFormatter('%Y-%m-%d') # 显示年-月-日
formatter = DateFormatter('%d') # 显示日
mdates.DateFormatter('%H') # 显示小时
定位器
坐标轴日期格式类型
YearLocator: 刻度显示年份
MonthLocator: 刻度显示月份
DayLocator: 刻度显示每月中的几号
WeekdayLocator: 刻度显示星期几
HourLocator: 刻度显示小时
MinuteLocator: 刻度显示分钟
比如:
#获取每月一日数据
monthdays = MonthLocator()
#获取每周一的日期数据
mondays = WeekdayLocator(MONDAY)
#获取每日数据
alldays = DayLocator()
范例:绘制苹果公司收盘股价的图表
filename_2 = './data/applestock_ch10_1.csv'
df_stock_data_1 = pd.read_csv(filename_2)
df_stock_data_1
import matplotlib.dates as mdates
x = pd.to_datetime(df_stock_data_1['Date'])
ax = plt.subplot(1,1,1)
ax.plot(x, df_stock_data_1['Close'])
ax.set_title('苹果公司2019年上半年股价')
ax.set_xlabel('月份')
ax.set_ylabel('股票价格')
#设置每月定位符
ax.xaxis.set_major_locator(mdates.MonthLocator()) # interval = 1
#设置日期的格式
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m'))
plt.show()