深圳网站开发语言,网站怎么做谷歌推广,wordpress富文本,深圳竞价排名网络推广关系#xff08;二#xff09;利用python绘制热图
热图 #xff08;Heatmap#xff09;简介 热图适用于显示多个变量之间的差异#xff0c;通过颜色判断彼此之间是否存在相关性。
快速绘制 基于seaborn import seaborn as sns
import pandas as pd
import numpy as np
i…关系二利用python绘制热图
热图 Heatmap简介 热图适用于显示多个变量之间的差异通过颜色判断彼此之间是否存在相关性。
快速绘制 基于seaborn import seaborn as sns
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl# 自定义数据
df pd.DataFrame(np.random.random((5,5)), columns[a,b,c,d,e])# 利用seaborn的heatmap函数创建
sns.heatmap(df)plt.show()定制多样化的热图 自定义热图一般是结合使用场景对相关参数进行修改并辅以其他的绘图知识。参数信息可以通过官网进行查看其他的绘图知识则更多来源于实战经验大家不妨将接下来的绘图作为一种学习经验以便于日后总结。 seaborn主要利用heatmap绘制热图可以通过seaborn.heatmap了解更多用法 不同输入格式的热图 import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
import pandas as pd
np.random.seed(0)sns.set(fontSimHei, font_scale0.8, stylewhite) # 解决Seaborn中文显示问题# 初始化
fig plt.figure(figsize(12,8))# 宽型是一个矩阵其中每一行都是一个个体每一列都是一个观察值。即热图的每个方块代表一个单元格
df pd.DataFrame(np.random.random((6,5)), columns[a,b,c,d,e])ax plt.subplot2grid((2, 2), (0, 0), colspan1)
sns.heatmap(df)
ax.set_title(宽型)# 方型相关矩阵热图
df pd.DataFrame(np.random.random((100,5)), columns[a,b,c,d,e])
corr_matrixdf.corr() # 计算相关矩阵ax plt.subplot2grid((2, 2), (0, 1), colspan1)
sns.heatmap(corr_matrix)
ax.set_title(方型)# 方型对角矩阵
df pd.DataFrame(np.random.random((100,5)), columns[a,b,c,d,e])
corr_matrixdf.corr() # 计算相关矩阵
mask np.zeros_like(corr_matrix)
mask[np.triu_indices_from(mask)] True # 生成上三角蒙版ax plt.subplot2grid((2, 2), (1, 0), colspan1)
sns.heatmap(corr_matrix, maskmask, squareTrue)
ax.set_title(方型-对角矩阵)# 长型每一行代表一个观测结果输入三个变量x,y,z
people np.repeat((A,B,C,D,E),5)
feature list(range(1,6))*5
value np.random.random(25)
df pd.DataFrame({feature: feature, people: people, value: value })
# 数据透视
df_wide df.pivot_table( indexpeople, columnsfeature, valuesvalue) ax plt.subplot2grid((2, 2), (1, 1), colspan1)
sns.heatmap(df_wide)
ax.set_title(长型)fig.tight_layout() # 自动调整间距
plt.show()自定热图 import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
import pandas as pd
np.random.seed(0)sns.set(fontSimHei, font_scale0.8, stylewhite) # 解决Seaborn中文显示问题# 自定义数据
df pd.DataFrame(np.random.random((10,10)), columns[a,b,c,d,e,f,g,h,i,j])# 初始化
fig plt.figure(figsize(9,8))# 显示值标签
ax plt.subplot2grid((3, 2), (0, 0), colspan1)
sns.heatmap(df, annotTrue, annot_kws{size: 7})
ax.set_title(显示值标签)# 自定义网格线
ax plt.subplot2grid((3, 2), (0, 1), colspan1)
sns.heatmap(df, linewidths2, linecoloryellow)
ax.set_title(自定义网格线)# 移除x、y或者颜色bar
ax plt.subplot2grid((3, 2), (1, 0), colspan1)
sns.heatmap(df, yticklabelsFalse, cbarFalse)
ax.set_title(移除部分轴元素)# 减少标签数量
ax plt.subplot2grid((3, 2), (1, 1), colspan1)
sns.heatmap(df, xticklabels4)
ax.set_title(减少标签数量)# 指定中心值
ax plt.subplot2grid((3, 2), (2, 0), colspan1)
sns.heatmap(df, center1)
ax.set_title(指定中心值)# 指定颜色
ax plt.subplot2grid((3, 2), (2, 1), colspan1)
sns.heatmap(df, cmapYlGnBu)
ax.set_title(指定颜色)fig.tight_layout() # 自动调整间距
plt.show()数据标准化 import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
import pandas as pd
np.random.seed(0)sns.set(fontSimHei, font_scale0.8, stylewhite) # 解决Seaborn中文显示问题# 自定义数据
df pd.DataFrame(np.random.randn(10,10) * 4 3)
# 列含异常值与标准化
df_col df.copy()
df_col[1]df_col[1]40 # 构造异常数据点
df_norm_col(df_col-df_col.mean())/df_col.std() # 按列标准化
# 行含异常值与标准化
df_row df.copy()
df_row.iloc[2]df_row.iloc[2]40 # 构造异常数据点
df_norm_row df_row.apply(lambda x: (x-x.mean())/x.std(), axis 1) # 按行标准化# 初始化
fig plt.figure(figsize(12,8))# 列含异常数据
ax plt.subplot2grid((2, 2), (0, 0), colspan1)
sns.heatmap(df_col, cmapviridis)
ax.set_title(列含异常数据)# 按列标准化
ax plt.subplot2grid((2, 2), (0, 1), colspan1)
sns.heatmap(df_norm_col, cmapviridis)
ax.set_title(按列标准化)# 行含异常数据
ax plt.subplot2grid((2, 2), (1, 0), colspan1)
sns.heatmap(df_row, cmapviridis)
ax.set_title(行含异常数据)# 按行标准化
ax plt.subplot2grid((2, 2), (1, 1), colspan1)
sns.heatmap(df_norm_col, cmapviridis)
ax.set_title(按行标准化)fig.tight_layout() # 自动调整间距
plt.show()引申-聚类热图 可以通过seaborn.clustermap了解更多用法 import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
import pandas as pd# 导入数据
df pd.read_csv(https://raw.githubusercontent.com/holtzy/The-Python-Graph-Gallery/master/static/data/mtcars.csv)
df df.set_index(model)# 基本聚类热图
g sns.clustermap(df, standard_scale1) # 标准化处理plt.show()总结
以上通过seaborn的heatmap快速绘制热图并通过修改参数或者辅以其他绘图知识自定义各种各样的热图来适应相关使用场景。
共勉