簡體   English   中英

如何更改 position 和 seaborn 熱圖垂直顏色條刻度標簽的大小?

[英]How to change the position and size of the labels of the ticks of the vertical colorbar of a seaborn's heatmap?

如何更改 seaborn 熱圖垂直顏色條的刻度的 position 和標簽大小?

我嘗試使用以下代碼

ax.figure.axes[-1].yaxis.label.set_size(36)
ax.figure.axes[-1].yaxis.label.set_position((4, 1.0))

但是,這不起作用,即顏色條的刻度標簽的字體大小保持在相同的 position 和相同的字體大小。 我也在做

colorbar = ax.collections[0].colorbar
colorbar.set_ticks([-0.667, 0, 0.667])


# I want these labels to be bigger and more to the right!!
colorbar.set_ticklabels(['-1', '0', '1']) 

使用colorbar.set_ticks([-0.667, 0, 0.667]) ,我可以更改刻度的垂直 position ,但我也希望相關標簽離刻度本身更遠。

顏色條的刻度有點令人困惑,因為位置需要通過colorbar.set_ticks()設置,但是當您想要更改其他參數時,您必須將 go 回到底層軸。 對於垂直顏色條,使用 y 軸。

這篇文章展示了一種始終使顏色條與主 plot 高度相同的方法。 顏色條需要在sns.heatmap之外創建。

import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import make_axes_locatable
import numpy as np
import seaborn as sns

ax = sns.heatmap(np.random.uniform(-.6, .6, (6, 12)), cmap='inferno', vmin=-0.667, vmax=0.667, square=True, cbar=False)
divider = make_axes_locatable(ax) 
cax = divider.append_axes("right", size="5%", pad=0.1) 
cbar = plt.colorbar(ax.collections[0], cax=cax)
cbar.set_ticks([-0.667, 0, 0.667])
cbar.ax.set_yticklabels(['-1', '0', '1'], size=20)
cbar.ax.tick_params(axis='y', which='major', length=0, pad=15)
cbar.outline.set_edgecolor('black')
cbar.outline.set_linewidth(2)
plt.tight_layout()
plt.show()

示例圖

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM