热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Seaborn热图更改颜色条的大小

如何解决《Seaborn热图更改颜色条的大小》经验,为你挑选了1个好方法。

通过以下代码,我绘制了一个seaborn热图以及一个colorbar。我想将颜色条的大小设置为等于热图的大小。我该如何实现?

我尝试使用来解决颜色栏问题,fig.colorbar(heatmap)但这会返回错误:

AttributeError: 'AxesSubplot' object has no attribute 'autoscale_None'

码:

fig,ax=plt.subplots(figsize=(30,60))

cmap = plt.get_cmap('inferno',30)
cmap.set_under('white')#Colour values less than vmin in white
cmap.set_over('yellow')# colour valued larger than vmax in red 

Crosstab=50000*np.random.randn(10,10)

heatmap=sns.heatmap(Crosstab[::-1],cmap=cmap,annot=False,square=True,ax=ax,vmin=1,vmax=50000,linewidths=0.8,linecolor="grey")



plt.show()



1> DavidG..:

如评论中所述,我无法使用Seaborn版本0.8和matplotlib 2.1.1重现此问题,因此,如果可能的话,我建议您更新模块。

话虽如此,您可以使用中的cbar_kws参数来操纵颜色条的大小seaborn.heatmap。这需要是一本字典,作为kwargs传递给matplotlibs(在幕后)fig.colorbar()

感兴趣的shrink参数之一。这会缩小颜色条的大小:

收缩:1.0; 小数乘以颜色条的大小

默认值为1.0,因此您可以尝试将其手动设置为1。但是,如果此方法不起作用,则可以使用较低的值来进一步缩小颜色条。这可能需要进行一些修补才能使颜色栏的尺寸正确。

fig, ax = plt.subplots()

cmap = plt.get_cmap('inferno',30)
cmap.set_under('white')#Colour values less than vmin in white
cmap.set_over('yellow')# colour valued larger than vmax in red

Crosstab=50000*np.random.randn(10,10)

heatmap=sns.heatmap(Crosstab[::-1],cmap=cmap,annot=False,square=True,ax=ax,vmin=1,vmax=50000,
                    cbar_kws={"shrink": 0.5},linewidths=0.8,linecolor="grey")

plt.show()

给予:


推荐阅读
author-avatar
etqq
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有