如何使用GnuPlot从数据的特定部分生成热图?(';splot';';每个';';使用';不兼容项等)
我正试图从我一直在生成的数据文件中生成热图。我可以根据自己的喜好对数据进行重新格式化,但就目前而言,假设这是一个包含16个数字的列表,我希望将其放入4x4热图中。然而,在同一个文件中,我有许多这16个数字的序列集,并希望最终将它们一起设置动画(这是我比较熟悉的,稍后会介绍) 然而,目前,我无法找到一种方法让GnuPlot在仍然正确打印的情况下仅选择数据文件的某些部分。一个松散的例子,我会认为它会是什么样子:如何使用GnuPlot从数据的特定部分生成热图?(';splot';';每个';';使用';不兼容项等),plot,gnuplot,heatmap,Plot,Gnuplot,Heatmap,我正试图从我一直在生成的数据文件中生成热图。我可以根据自己的喜好对数据进行重新格式化,但就目前而言,假设这是一个包含16个数字的列表,我希望将其放入4x4热图中。然而,在同一个文件中,我有许多这16个数字的序列集,并希望最终将它们一起设置动画(这是我比较熟悉的,稍后会介绍) 然而,目前,我无法找到一种方法让GnuPlot在仍然正确打印的情况下仅选择数据文件的某些部分。一个松散的例子,我会认为它会是什么样子: plot "SortedData.txt" every ::0::15 w image
plot "SortedData.txt" every ::0::15 w image
或:
两者都给我错误和无法呈现。如果需要,我可以使用x-y坐标标记数据值,但任务相当重复:我只希望映射前16个点,然后能够迭代一次,并自己映射下16个点,等等。将数据文件剥离到前16个点,然后删除“every”命令确认它可以绘制,但是,即使手动指定前16个,也会把事情搞砸
谁能给我指出正确的方向吗?“every”命令相当模糊,似乎在很大程度上与images/3-D数据不兼容。另外,我在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
数据文件中的每一行似乎都有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。请发布一个包含(至少)两个帧的数据文件示例。框架之间是否有分隔,例如一行或两行空白?我刚刚更新了帖子,回复了你。
plot "data.dat" index FRAME matrix w image