Tip*_*ena 2 python matplotlib seaborn
在调整颜色条时遇到几个问题seaborn.clustermap
。我试图:
我检查过文档没有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)
您可以通过 获取带有颜色条的子图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)