gnuplot 矩阵数据块图像
gnuplot matrix datablock image
我有一个 ASCII 文件,其中包含多个由换行符分隔的数据块。每个数据块大小相同。我想将每个数据块绘制为单独的热图。我一直在尝试以下命令的变体来绘制第一个块:
plot data matrix every :::0::0 w image
但是 gnuplot 使用此命令会出现段错误。如果我删除除一个以外的所有数据块,那么我可以用
绘制单个块
plot data matrix w image
我应该如何修改第一个命令来选择一个单独的数据块?最后,我想写一个循环来为每个数据块生成单独的图。
在我看来,"datablock"、"dataset"、"data" 等有点混乱...
如果您的 "blocks" 被多个空行分隔,您可以使用 index
来解决它,检查 help index
。如果 "blocks" 由一行分隔,您可以通过 every
找到它们,检查 help every
。
代码:
### plotting "datablocks"
reset session
$Data <<EOD
1 0
0 1
1 1
1 0
0 1
0 0
1 1
0 1
EOD
unset colorbox
set multiplot layout 2,2
do for [i=0:3] {
set title sprintf("Block %d",i)
plot $Data index i matrix w image notitle
}
unset multiplot
### end of code
结果:
我有一个 ASCII 文件,其中包含多个由换行符分隔的数据块。每个数据块大小相同。我想将每个数据块绘制为单独的热图。我一直在尝试以下命令的变体来绘制第一个块:
plot data matrix every :::0::0 w image
但是 gnuplot 使用此命令会出现段错误。如果我删除除一个以外的所有数据块,那么我可以用
绘制单个块plot data matrix w image
我应该如何修改第一个命令来选择一个单独的数据块?最后,我想写一个循环来为每个数据块生成单独的图。
在我看来,"datablock"、"dataset"、"data" 等有点混乱...
如果您的 "blocks" 被多个空行分隔,您可以使用 index
来解决它,检查 help index
。如果 "blocks" 由一行分隔,您可以通过 every
找到它们,检查 help every
。
代码:
### plotting "datablocks"
reset session
$Data <<EOD
1 0
0 1
1 1
1 0
0 1
0 0
1 1
0 1
EOD
unset colorbox
set multiplot layout 2,2
do for [i=0:3] {
set title sprintf("Block %d",i)
plot $Data index i matrix w image notitle
}
unset multiplot
### end of code
结果: