Seaborn clustermap 颜色条调整

Tip*_*ena 2 python matplotlib seaborn

在调整颜色条时遇到几个问题seaborn.clustermap。我试图:

  1. 将颜色条定向为水平方向
  2. 更改颜色条边框颜色
  3. 更改颜色条刻度长度

我检查过文档没有figure.colorbar效果。

最小代码:

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

#data
corr = np.corrcoef(np.random.randn(10, 200))

#clustermap
kws = dict(cbar_kws=dict(label='Label', ticks=[0,0.50,1], orientation='horizontal'), figsize=(6, 6))
sns.clustermap(corr, cmap="Blues", xticklabels=False, yticklabels=False, **kws)
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Joh*_*anC 6

您可以通过 获取带有颜色条的子图g.ax_cbar。然后你可以改变它的位置、标题、书脊和刻度长度:

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

corr = np.corrcoef(np.random.randn(10, 200))

kws = dict(cbar_kws=dict(ticks=[0, 0.50, 1], orientation='horizontal'), figsize=(6, 6))
g = sns.clustermap(corr, cmap="Blues", xticklabels=False, yticklabels=False, **kws)
x0, _y0, _w, _h = g.cbar_pos
g.ax_cbar.set_position([x0, 0.9, g.ax_row_dendrogram.get_position().width, 0.02])
g.ax_cbar.set_title('colorbar title')
g.ax_cbar.tick_params(axis='x', length=10)
for spine in g.ax_cbar.spines:
    g.ax_cbar.spines[spine].set_color('crimson')
    g.ax_cbar.spines[spine].set_linewidth(2)
plt.show()
Run Code Online (Sandbox Code Playgroud)

具有自定义颜色条的 sns.clustermap