我必须创建一个颜色图,而“带图像”的绘图样式正是我想要的。(在 x,y 位置绘制 z 的确切值,所以使用 pm3d 对我来说不是一个选项)
问题是,我的数据文件中有未定义的点。例如,该函数表示质量比,因此负 z 值没有物理意义,我想省略它们。或者某些 z 值甚至是“NaN”。
示例数据文件:
1.0 1.0 1.5
1.0 2.0 1.7
1.0 3.0 1.9
2.0 1.0 1.6
2.0 2.0 1.8
2.0 3.0 2.0
3.0 1.0 1.7
3.0 2.0 1.9
3.0 3.0 -1.0
所以我不想在 (3,3) 位置绘制值 -1,但将 (3,3) 处的像素留空。
我试过这个:
plot './test.dat' u 1:2:($3>0 ? $3 : 1/0) with image
但它不起作用。它说:
警告:像素数不能分解为匹配网格的整数。N = 8 K = 3
set datafile missing "NaN"
在 -1.0 被“NaN”替换的情况下也不起作用。
我发现的唯一选择是:
set pointsize 10
plot './test.dat' u 1:2:($3>0 ? $3 : 1/0) palette pt 5
但随后我必须手动调整每个绘图的点大小、x 和 y 范围以及绘图大小,以便数据点没有空格或重叠。(见这个问题。)
所以长话短说:有没有办法使用带有未定义/缺失数据点的“带图像”绘图样式并将这些点留白?