使用默认的参数,标签有时候无法处在热力图的格子中间。解决方式:
def draw_heatmap(data, days, num):
%matplotlib
dets = sorted(list(set(data.detid)))
with plt.style.context(['science', 'no-latex']):
for det in dets[: num]:
det_data = data[data.detid == det]
det_data = det_data[det_data['day'].isin(days)]
det_data = det_data.pivot(index='interval', columns='day', values='flow')
det_data_corr = det_data.corr()
ax = plt.figure(figsize=(20, 16))
ax = sns.heatmap(det_data_corr, vmax=0.8, square=True, annot=True, linewidths=.1, annot_kws={'size': 20, 'weight': 'bold'},
cbar=False, xticklabels='auto', yticklabels='auto')
# ax.suptitle(det)
plt.xticks(fontsize=20)
plt.yticks(fontsize=20)
ax.set_yticklabels(labels=ax.get_yticklabels(), va='center') # 这段代码完成任务
plt.tight_layout()
效果如下: