首页 > 解决方案 > 如何使用 seaborn 以正方形打印热图?

问题描述

当我运行下面的代码时,我注意到热图没有正方形,知道我已经使用过square=True但它不起作用!知道如何以方形格式打印热图吗?谢谢!

编码:

from datetime import datetime
import numpy as np
import pandas as pd
import matplotlib as plt
import os
import seaborn as sns

temp_hourly_A5_A7_AX_ASHRAE=pd.read_csv('C:\\Users\\cvaa4\\Desktop\\projects\\s\\temp_hourly_A5_A7_AX_ASHRAE.csv',index_col=0, parse_dates=True, dayfirst=True, skiprows=2)
sns.heatmap(temp_hourly_A5_A7_AX_ASHRAE,cmap="YlGnBu", vmin=18, vmax=27, square=True, cbar=False, linewidth=0.0001);

结果:

热图结果

标签: pythonpandasseabornheatmap

解决方案


square=True应该有方形单元格,下面是一个工作示例:

import pandas as pd
import numpy as np
import seaborn as sns

df = pd.DataFrame(np.tile([0,1], 15*15).reshape(-1,15))

sns.heatmap(df, square=True)

方形细胞

但是,如果您想要一个正方形的绘图,您可以使用set_aspect数据的形状:

ax = sns.heatmap(df)
ax.set_aspect(df.shape[1]/df.shape[0]) # here 0.5 Y/X ratio

方图


推荐阅读