白色 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)
输出:
我需要根据从 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)
输出: