3 回答

TA贡献1775条经验 获得超8个赞
加入+0.5
到np.arange(7)
在plt.yticks
为我工作
plt.yticks(np.arange(7)+0.5,('Mon','Tue','Wed','Thu','Fri','Sat','Sun'), rotation=0, fontsize="10", va="center")

TA贡献1830条经验 获得超3个赞
onno 的解决方案适用于这种特定情况(矩阵类型的图通常在补丁中间有标签),但也可以考虑这些更通用的方法来帮助您:
a) 首先找出刻度线的位置
pos, textvals = plt.yticks()
print(pos)
>>> [0.5 1.5 2.5 3.5 4.5 5.5 6.5]
当然,您可以在更新期间直接使用这些职位:
plt.yticks(pos,('Mon','Tue','Wed','Thu','Fri','Sat','Sun'),
rotation=0, fontsize="10", va="center")
b) 使用基于对象的 API 只调整文本
pyplot 命令xticks并同时yticks更新位置和文本。但是轴对象对于位置 ( ax.set_yticks(pos)) 和文本 ( ax.set_yticklabels(labels))具有独立的方法。
只要您知道要生成多少标签(以及它们的顺序),您甚至不需要考虑它们的位置来更新文本。
ax.set_yticklabels(('Mon','Tue','Wed','Thu','Fri','Sat','Sun'),
rotation=0, fontsize="10", va="center")

TA贡献1841条经验 获得超3个赞
这是一个老问题,但我最近遇到了这个问题,发现这对我有用:
g = sns.heatmap(df)
g.set_yticklabels(labels=g.get_yticklabels(), va='center')
当然,您也可以labels=myLabelList像在 OP 中那样定义
添加回答
举报