在Python中使用Seaborn matplotlib创建矩阵的热图

在Python中使用Seaborn matplotlib创建矩阵的热图,python,matplotlib,seaborn,Python,Matplotlib,Seaborn,我已经将一个大型矩阵从Matlab导出到一个data.dat文件中,该文件以制表符分隔。我正在将此数据导入iPython脚本,以使用seaborn创建矩阵的热图,方法如下: 此代码运行良好,并输出正确的热图。对于小矩阵,输出具有良好的变化,指示矩阵元素: 但是,如果矩阵的大小增加,结果似乎有一个统一的颜色,这表明结果需要归一化: 它似乎不包含任何可提取的信息。如何解决此问题?您可以打印(uniform\u data.min(),uniform\u data.max())查看这些值是否对应于颜

我已经将一个大型矩阵从Matlab导出到一个
data.dat
文件中,该文件以制表符分隔。我正在将此数据导入iPython脚本,以使用
seaborn
创建矩阵的热图,方法如下:

此代码运行良好,并输出正确的热图。对于小矩阵,输出具有良好的变化,指示矩阵元素:

但是,如果矩阵的大小增加,结果似乎有一个统一的颜色,这表明结果需要归一化:


它似乎不包含任何可提取的信息。如何解决此问题?

您可以
打印(uniform\u data.min(),uniform\u data.max())
查看这些值是否对应于颜色条的极端值。(我很确定他们是这样做的,因为seaborn代码就是这样工作的。)您可以尝试将vmax降低到0.3,对于较低的值,颜色会有更大的差异,但您无法判断值是0.3、0.5还是1.0。您还可以增加图形大小,使“热图像素”变大。
import numpy as np
import seaborn as sns
import matplotlib.pylab as plt

uniform_data = np.loadtxt("data.dat", delimiter="\t")
ax = sns.heatmap(uniform_data, linewidth=0.0)
plt.show()