如何在热力图中保持单元格的正方形?

12

当cbar打开时,seaborn热图中的单元格是矩形的。我可以更改轴的figsize,但我想知道是否有更简单的方法来保持单元格的正方形。


看一下 plt.axis('equal') - Martin Evans
2
你尝试过使用 square 参数吗?http://seaborn.pydata.org/generated/seaborn.heatmap.html - mwaskom
@mwaskom 噢,那真是尴尬。 - Demetri Pananos
别担心 - 有很多选择! - mwaskom
1
@RylanSchaeffer 这是seaborn中的一个bug https://github.com/mwaskom/seaborn/issues/1773。我认为可以通过更改轴的`ylim`来纠正这个问题。解决方案应该在这个github问题中找到。 - Demetri Pananos
显示剩余3条评论
2个回答

11

Seaborn热力图有一个选项square

heatmap(data, square=True)

1
我尝试使用 square=Trueax.set_aspect("equal"),但都不能解决底部和顶部行的单位问题。有什么好的解决办法吗? - Rylan Schaeffer

7
您可以使用ax.set_aspect("equal")为坐标轴ax设置等比例纵横比。
例子:
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

data = np.random.rand(4,16)
ax = sns.heatmap(data)
ax.set_aspect("equal")
plt.show()

enter image description here


1
我尝试了 square=Trueax.set_aspect("equal"),但都不能解决底部和顶部行的单位问题。有什么好的解决方法吗? - Rylan Schaeffer
需要修复什么? - ImportanceOfBeingErnest
我的顶部和底部行的单元格是矩形的,它们的宽度与其他列相匹配,但它们的高度减半。 - Rylan Schaeffer
1
好的。那是一个完全不同的问题。 - ImportanceOfBeingErnest
谢谢提供链接!我不会说这是一个“完全”不同的问题——就像OP一样,我也在尝试确保单元格保持正方形。 - Rylan Schaeffer
这是因为您的问题与色条无关。 - ImportanceOfBeingErnest

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接