参考set_xticks函数的官方文档
参考set_xticklabels函数的官方文档
在使用matplotlib绘图时,数据量一旦很多,且标签不是实数而是日期一类的文本时,容易出现坐标轴上标签太多、互相重叠的效果,如下图所示:
如果你是希望得到下图的效果,请继续看:
ax.set_xticks(array_samp)# 第一件事,调用set_xticks函数,将横轴的刻度画上
labels = [date[i] for i in array_samp]# 第二件事,从date数组中取出日期字符串,构成新的字符串数组,与array_samp等长
ax.set_xticklabels(labels, rotation=40)# 第三件事,调用set_xticklabels函数,为第一步设置的每个刻度处附上标签。
#参数rotation设置标签字符串旋转角度
那么,为了减小刻度/标签的密度,就要控制array_samp数组的长度。即从原始数据中按预期的标签个数采样几个索引值,例如总共有30,000天的数据,我想让横轴只显示30个刻度/标签,只需要:
取[0,999,1999,...,29999]三十个索引值作为要标出的刻度,调用set_xticks;
取date[0],date[999],...,date[29999]三十个日期作为刻度对应的标签,调用set_xticklabels;
然后绘图,大功告成!