我的代码当前创建一个输出,结果如下(使用示例数字)
0.0 0.0 0.0
0.0 1.0 0.0
0.0 0.0 0.0
0.0 0.0 2.0
0.0 0.0 0.0
0.0 0.0 2.0
0.0 0.0 0.0
1.0 0.0 0.0
0.0 0.0 0.0
0.0 3.0 0.0
0.0 0.0 0.0
0.0 0.0 1.0
3.0 0.0 0.0
0.0 0.0 0.0
1.0 0.0 2.0
0.0 0.0 0.0
3.0 0.0 0.0
0.0 0.0 0.0
1.0 0.0 2.0
0.0 0.0 0.0
3.0 0.0 0.0
0.0 0.0 0.0
1.0 0.0 2.0
0.0 0.0 0.0
3.0 0.0 0.0
0.0 0.0 0.0
1.0 0.0 2.0
0.0 0.0 0.0
希望找到一个解决方案,如何将这些数据绘制为 3D 样图或循环显示每个矩阵的 gif(实际代码包含数百个矩阵)。如有必要,我可以更改输出格式。到目前为止我已经尝试过了
do for [i=1:7] {
plot "data.txt" matrix with image
}
以及尝试我在网站上找到的其他解决方案,但似乎没有人尝试做与我相同的事情。
如果有 gnuplot 经验的人可以帮助我,那将是一个巨大的帮助(如果这有影响的话,我正在使用 mac)
我假设矩阵的所有分隔都是两空行。 如果是这种情况,您可以通过
index
对矩阵进行寻址(选中 help index
)。
您可以使用 stats
(检查 help stats
)了解您拥有多少个区块。循环遍历这些块并将输出设置为 term gif animate
(选中 help gif
)。无需绘制数据块$Data
,只需绘制您的文件即可。
仔细检查:
### plot matrices as asnimation
reset session
$Data <<EOD
0.0 0.0 0.0
0.0 1.0 0.0
0.0 0.0 0.0
0.0 0.0 2.0
0.0 0.0 0.0
0.0 0.0 2.0
0.0 0.0 0.0
1.0 0.0 0.0
0.0 0.0 0.0
0.0 3.0 0.0
0.0 0.0 0.0
0.0 0.0 1.0
3.0 0.0 0.0
0.0 0.0 0.0
1.0 0.0 2.0
0.0 0.0 0.0
3.0 0.0 0.0
0.0 0.0 0.0
1.0 0.0 2.0
0.0 0.0 0.0
3.0 0.0 0.0
0.0 0.0 0.0
1.0 0.0 2.0
0.0 0.0 0.0
EOD
stats $Data u 0 nooutput # get the number of blocks
N = STATS_blocks
set term gif size 600,400 animate delay 30
set output "SO72250259.gif"
set size ratio -1
set cbrange [0:3]
set xrange [-0.5:2.5]
set yrange [-0.5:3.5]
do for [i=0:N-1] {
plot $Data index i matrix w image
}
set output
### end of script
结果: