【问题标题】:Gnuplot: undefined/missing datapoints and plotting style 'with image'Gnuplot:未定义/缺失的数据点和“带图像”的绘图样式
【发布时间】:2013-01-09 13:08:47
【问题描述】:

我必须创建一个颜色图,而“带图像”的绘图风格正是我想要的。 (在 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 范围以及绘图大小,以便数据点没有空格或重叠。 (见this question。)

长话短说:有什么方法可以使用“带图像”的绘图风格来处理未定义/缺失的数据点并将这些点留白?

【问题讨论】:

    标签: gnuplot


    【解决方案1】:

    在这种情况下,我还没有找到让 gnuplot 很好地处理 NaN 的方法。对我来说它设置为 1,这看起来很奇怪,但可能是 'plot ... with image' 如何处理丢失数据的一个特点。

    如果您只想消除负数,可以使用一种技巧:

    #!/usr/bin/env gnuplot
    
    set terminal png 
    set output 'test.png'
    
    filter(x) = (x > 0) ? x : 1/0 
    philter(x) = (x > 0) ? x : 0 
    
    # just in case
    set zero 1e-20
    
    # make points set to zero be white
    set palette defined (0 1.0 1.0 1.0, \
                     1e-19 0.0 0.0 1.0, \
                         1 1.0 0.0 0.0)
    
    # get min/max for setting color range
    stats 'test.dat' u (filter($3)) nooutput
    
    # set color range so minimum value is not plotted as white
    set cbrange [STATS_min*(1-1e-6):STATS_max]
    
    plot './test.dat' u 1:2:(philter($3)) with image
    

    在您的数据文件中,它会生成此图:

    这不是很理想,因为颜色条底部有那个白色位,它不处理 NaN。无法摆脱白色位的原因是,在设置调色板时,使用的数字只是自动缩放以适应颜色条,并且调色板中有离散数量的插槽(256?)。因此,调色板中的第一个插槽将始终显示调色板开头的值(白色),无论调色板中的下一个颜色是否显示在 1e-19 范围内。

    【讨论】:

    • 谢谢你的回答,这很重要;)在 pngcairo 终端中看起来不错(cb 底部没有白色位)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 2011-11-27
    • 1970-01-01
    • 2021-03-21
    • 1970-01-01
    • 2022-10-23
    相关资源
    最近更新 更多