第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Seaborn 熱圖上 y 軸刻度的垂直對齊

Seaborn 熱圖上 y 軸刻度的垂直對齊

溫溫醬 2021-08-17 16:14:59
我正在繪制 aSeaborn heatmap并且我想將y-axis刻度標(biāo)簽居中,但找不到方法來做到這一點。'va'text 屬性似乎在 上不可用yticks()??紤]下圖我想將一周中的幾天與一排方塊的中心對齊生成此圖的代碼:import pandas as pdimport seaborn as snsimport numpy as npimport matplotlib.pyplot as plt#Generate dummy datastartDate = '2017-11-25'dateList = pd.date_range(startDate, periods=365).tolist()df = pd.DataFrame({'Date': dateList,                'Distance': np.random.normal(loc=15, scale=15, size=(365,))              })#set week and daydf['Week'] = [x.isocalendar()[1] for x in df['Date']]df['Day'] = [x.isocalendar()[2] for x in df['Date']]#create dataset for heatmap#group by axis to plotdf = df.groupby(['Week','Day']).sum().reset_index()#restructure for heatmapdata = df.pivot("Day","Week","Distance")#configure the heatmap plotsns.set()fig, ax = plt.subplots(figsize=(15,6))ax=sns.heatmap(data,xticklabels=1,ax = ax, robust=True, square=True,cmap='RdBu_r',cbar_kws={"shrink":.3, "label": "Distance (KM)"})ax.set_title('Running distance', fontsize=16, fontdict={})#configure the x and y ticksplt.xticks(fontsize="9")plt.yticks(np.arange(7),('Mon','Tue','Wed','Thu','Fri','Sat','Sun'), rotation=0, fontsize="10", va="center")#set labelsize of the colorbarcbar = ax.collections[0].colorbarcbar.ax.tick_params(labelsize=10)plt.show()
查看完整描述

3 回答

?
www說

TA貢獻(xiàn)1775條經(jīng)驗 獲得超8個贊

加入+0.5np.arange(7)plt.yticks為我工作

plt.yticks(np.arange(7)+0.5,('Mon','Tue','Wed','Thu','Fri','Sat','Sun'), rotation=0, fontsize="10", va="center")



查看完整回答
反對 回復(fù) 2021-08-17
?
牛魔王的故事

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")


查看完整回答
反對 回復(fù) 2021-08-17
?
偶然的你

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 中那樣定義


查看完整回答
反對 回復(fù) 2021-08-17
  • 3 回答
  • 0 關(guān)注
  • 423 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號