白色 Space 列表到热图

White Space List to Heatmap

我需要根据从 HTML 工具中提取的一些数据制作一个热图样式的图(数据是均匀分开的,所以我认为绘图方法应该不太重要)。不幸的是,该工具以 .xyz 文件的形式将所有数据点作为 3 行空格分隔的列表提供。例如...

-1 -1 .2
-1  0 .5
-1  1 .9
-1  2 .7
0  -1  0
0   0 .8
0   1 .1
0   2 .9
1  -1 .5
1   0 .4
1   1 .6
1   2 .7

我怀疑最好的方法是将文件放入数据框中,进行整理,然后使用 sns.heatmap() 或某种方法进行绘图。为此,我目前首先将文件重新保存为 .csv,然后使用 pandas.read_csv() 导入(我觉得必须有更 pythonic 的方式来完成这些步骤)。 我已经使用 pandas.unique() 来获取列和索引值。现在,我不知道如何正确构建和填充新数据框。

目前的解决方案:

import pandas as pd
import seaborn as sns

header = ['x', 'y', 'value']
df_demo = pd.read_csv(r"C:\MyLocation\"
                      +'democsv'+'.csv', header = None, delim_whitespace=True)
df_demo.columns = header

df_pivot = df_demo.pivot(index='y',columns='x', values='value')

sns.heatmap(df_pivot)

输出

Output from above code

我愿意用其他方式解决这个问题,在此先感谢您的帮助。

使用pivot:

df = pd.read_csv('file.csv', names=header, delim_whitespace=True)

df_pivot = df.pivot(index='x',columns='y', values='value')


import seaborn as sns
sns.heatmap(df_pivot)

输出: