3 回答

TA貢獻(xiàn)1775條經(jīng)驗 獲得超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貢獻(xiàn)1830條經(jīng)驗 獲得超3個贊
onno 的解決方案適用于這種特定情況(矩陣類型的圖通常在補丁中間有標(biāo)簽),但也可以考慮這些更通用的方法來幫助您:
a) 首先找出刻度線的位置
pos, textvals = plt.yticks()
print(pos)
>>> [0.5 1.5 2.5 3.5 4.5 5.5 6.5]
當(dāng)然,您可以在更新期間直接使用這些職位:
plt.yticks(pos,('Mon','Tue','Wed','Thu','Fri','Sat','Sun'),
rotation=0, fontsize="10", va="center")
b) 使用基于對象的 API 只調(diào)整文本
pyplot 命令xticks并同時yticks更新位置和文本。但是軸對象對于位置 ( ax.set_yticks(pos)) 和文本 ( ax.set_yticklabels(labels))具有獨立的方法。
只要您知道要生成多少標(biāo)簽(以及它們的順序),您甚至不需要考慮它們的位置來更新文本。
ax.set_yticklabels(('Mon','Tue','Wed','Thu','Fri','Sat','Sun'),
rotation=0, fontsize="10", va="center")

TA貢獻(xiàn)1841條經(jīng)驗 獲得超3個贊
這是一個老問題,但我最近遇到了這個問題,發(fā)現(xiàn)這對我有用:
g = sns.heatmap(df)
g.set_yticklabels(labels=g.get_yticklabels(), va='center')
當(dāng)然,您也可以labels=myLabelList像在 OP 中那樣定義
添加回答
舉報