Matplotlib:如何根据值绘制热图
Matplotlib: How to plot heatmap based on values
我需要根据文件中的值绘制热图。文件结构如下:
, c1 , c2 , ... , cN
-- -- -- --
c1, 1 , 0.24 , ... , 0.37
c2,0.29, 1 , ... , 0.31
...
...
...
cN,0.42, 0.27, ... , 1
我需要热图形式的输出,其中 x 轴和 y 轴的标签都是 c1,c2,...,cN
。
这些值不是相关值,而是0到1范围内的交集值。因此,我无法使用corr()
方法。我在网上看到的示例通常处理相关矩阵的热图,或者文件以不同的方式构建。
这是我对一些假数据的尝试,并假设每个单元格中的值都可以按原样使用,不需要更多处理。
import seaborn as sns
创建虚假数据
data = """
, c1 , c2 , cN
-- -- -- --
c1, 1 , 0.24 , 0.37
c2,0.29, 1 , 0.31
cN,0.42, 0.27, 1
"""
with open("temp.txt", "wt") as f:
f.write(data)
使用pandas读取数据并排除其中带有'--'的行。
data = pd.read_csv("temp.txt",index_col=0, skiprows=[2])
使用 seaborn.heatmap
创建带有适当标签的热图。
sns.heatmap(data)
我得到以下输出。
希望这是您的想法。
我需要根据文件中的值绘制热图。文件结构如下:
, c1 , c2 , ... , cN
-- -- -- --
c1, 1 , 0.24 , ... , 0.37
c2,0.29, 1 , ... , 0.31
...
...
...
cN,0.42, 0.27, ... , 1
我需要热图形式的输出,其中 x 轴和 y 轴的标签都是 c1,c2,...,cN
。
这些值不是相关值,而是0到1范围内的交集值。因此,我无法使用corr()
方法。我在网上看到的示例通常处理相关矩阵的热图,或者文件以不同的方式构建。
这是我对一些假数据的尝试,并假设每个单元格中的值都可以按原样使用,不需要更多处理。
import seaborn as sns
创建虚假数据
data = """
, c1 , c2 , cN
-- -- -- --
c1, 1 , 0.24 , 0.37
c2,0.29, 1 , 0.31
cN,0.42, 0.27, 1
"""
with open("temp.txt", "wt") as f:
f.write(data)
使用pandas读取数据并排除其中带有'--'的行。
data = pd.read_csv("temp.txt",index_col=0, skiprows=[2])
使用 seaborn.heatmap
创建带有适当标签的热图。
sns.heatmap(data)
我得到以下输出。
希望这是您的想法。