Python 如何在热图中保持单元格为方形?

Python 如何在热图中保持单元格为方形?,python,seaborn,Python,Seaborn,当cbar打开时,seaborn的热图中的单元格为矩形。我可以更改轴的大小,但我想知道是否有更简单的方法来保持单元格为方形。您可以使用ax。设置轴的纵横比(“相等”)为轴设置相等的纵横比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") pl

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

您可以使用
ax。设置轴的纵横比(“相等”)
为轴设置相等的纵横比
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()

海本热图有方形选项:

heatmap(data, square=True)

看看
plt.axis('equal')
你试过
square
参数了吗@mwaskom哦,那太尴尬了,别担心——有很多@Rylanschaefer这是seaborn的一只虫子。我认为这可以通过改变轴的
ylim
来纠正。应该在这个github问题中找到解决方案。我尝试了
square=True
ax.set\u aspect(“equal”)
,但这两种方法都不能固定底部和顶部行的单位。你知道如何解决这个问题吗?到底需要解决什么问题?我的上一行和下一行的单元格是矩形的,它们的宽度和其他列相匹配,但它们的高度被切成两半。对。那是一个。谢谢你的链接!我不会说这是一个“完全”不同的问题-就像OP一样,我也在努力确保单元格保持正方形。我尝试了
square=True
ax.set_aspect(“equal”)
,但这两种方法都不能固定底部和顶部行的单位。你知道怎么解决这个问题吗?