Python版本3.7
import pandas as pd
import numpy as np
import seaborn as sns #用于绘制热图的工具包
#from scipy.cluster import hierarchy #用于进行层次聚类,话层次聚类图的工具包
#from scipy import cluster
import matplotlib.pyplot as plt
#from sklearn import decomposition as skldec #用于主成分分析降维的包
#读取数据
df = pd.read_csv('./workspace/all-2.txt', sep='\t', index_col=0, header=0)
#转成矩阵用于标准化数据
np_data = np.array(df.values)
#print(nu_data)
#计算每一行的均值
average_line =np.array(df.mean(axis=1))
#计算每一行的标准差
std_line = np.array(df.std(axis=1))
#print("=================")
#print(average_line)
# np_data.T 将数据转置后减去每一行的均值矩阵获得差值矩阵
L = np_data.T - average_line
#print(L.T)
#差值矩阵除以每一行的标准差 获得均一化之后的值
K = L/std_line
#均一化之后的矩阵转置获得原始排序的矩阵
array_data_std = K.T
#print(array_data_std)
#转成pandas的DataFrame 并 添加行和列索引
df_sdt = pd.DataFrame(array_data_std,index= df.index)
df_sdt.columns = df.columns
print(df_sdt)
#输出热图
g = sns.clustermap(df_sdt, center=0, yticklabels=false, cmap = 'RdBu')
#print(g)
plt.show()
R结果与python结果比对没有差异
Python结果
Figure_1.png
> library(pheatmap)
> heat
> a
R结果
Rspace.png
: