如何使用GnuPlot从特定的数据部分生成热图? (' splot','每个','使用' incompatibilites等)

时间:2018-03-23 22:04:34

标签: plot gnuplot heatmap

我正在尝试从我正在生成的数据文件中生成热图。我可以根据自己的喜好重新格式化数据,但暂时不要说它是我想要放入4x4热图的16个数字的列表。但是,我在同一个文件中按顺序排列了这16个数字,并希望最终将它们组合在一起(我更熟悉的东西,稍后会出现)

但是,目前我还没有办法让GnuPlot只选择数据文件的某些部分,同时仍然正确绘图。我会想到它的一个简单例子:

plot "SortedData.txt" every ::0::15 w image

或:

splot "SortedData.txt" every ::0::15 

两者都给我错误而且无法渲染。如果需要的话,我可以用xy坐标标记数据值,但是任务是相当重复的:我只想要映射前16个点,然后迭代一次,然后自己映射下16个点,等等。数据文件只是前16个点并删除了每个'命令确认它可以绘制,但试图指定即使只是前16个手动混乱它。

有人能指出我正确的方向吗? "每一个"命令一直很模糊,似乎与图像/三维数据很不相容。此外,我在Windows上运行,因此我希望避免使用linux命令。

谢谢!

编辑:这是数据的4个示例帧。如果需要,将其重新格式化为具有像素地址的矩阵或标签,这些都是我可以做的事情。

0.000000    -49.314654  -44.425234  -46.613870  -48.494232  -46.884806  -46.553071  -46.555624  -43.755972  -47.817691  -42.481637  -46.819782  -44.347586  -49.487077  -47.291832  -45.140636  -47.945934
0.839906    -49.325396  -44.425493  -46.613214  -48.501283  -46.887236  -46.550858  -46.555285  -43.752786  -47.814706  -42.453793  -46.814333  -44.329492  -49.493501  -47.289394  -45.133555  -47.944045
1.679721    -49.336151  -44.425787  -46.612573  -48.508348  -46.889684  -46.548645  -46.554958  -43.749626  -47.811707  -42.425757  -46.808866  -44.311344  -49.499930  -47.286951  -45.126476  -47.942155
2.519466    -49.346920  -44.426117  -46.611946  -48.515427  -46.892152  -46.546431  -46.554641  -43.746492  -47.808695  -42.397525  -46.803382  -44.293140  -49.506365  -47.284501  -45.119398  -47.940264

1 个答案:

答案 0 :(得分:1)

您的数据文件中的每一行似乎都有17个元素。我假设第一列不是您的图像数据的一部分。我将剩余的16个值格式化为4x4矩阵,每个帧由两个空行分隔:

-49.314654  -44.425234  -46.613870  -48.494232  
-46.884806  -46.553071  -46.555624  -43.755972  
-47.817691  -42.481637  -46.819782  -44.347586  
-49.487077  -47.291832  -45.140636  -47.945934


-49.325396  -44.425493  -46.613214  -48.501283  
-46.887236  -46.550858  -46.555285  -43.752786  
-47.814706  -42.453793  -46.814333  -44.329492  
-49.493501  -47.289394  -45.133555  -47.944045


-49.336151  -44.425787  -46.612573  -48.508348  
-46.889684  -46.548645  -46.554958  -43.749626  
-47.811707  -42.425757  -46.808866  -44.311344  
-49.499930  -47.286951  -45.126476  -47.942155


-49.346920  -44.426117  -46.611946  -48.515427  
-46.892152  -46.546431  -46.554641  -43.746492  
-47.808695  -42.397525  -46.803382  -44.293140  
-49.506365  -47.284501  -45.119398  -47.940264

然后,您可以使用命令

显示每个帧
plot "data.dat" index FRAME matrix w image

其中FRAME为0,1,2或3。