如何从 gnuplot 中的数据设置点类型?

How set point type from data in gnuplot?

如何从 gnuplot 中的数据设置点类型?

gnuplot 脚本:

set terminal pngcairo size 640,480
set output "points.png" 
set style data points 
set auto x 
set autoscale x 
unset colorbox 
plot 'test.data' using 2:1 with points notitle

test.data

32  35  8
34  34  6
36  28  1
34  32  2
28  30  7
38  30  9
34  29  2
35  36  9
39  34  3
31  33  9
28  31  6
35  30  5
33  41  4
32  37  3

如何从 3 列获取点类型?

plot 'gnuplot.data' using 2:1 with points pt (:3) notitle // error 

抽象示例:

需要:

gnuplot 版本 4.6 补丁级别 4

没有选项 select 来自基于列的数据文件的点类型(相当于 linecolor variablepointsize variablearrowstyle variable)。基本上你有两个选择:

  1. 迭代所有可能的点类型(如果这应该是可变的,你可以用 stats 提取)并且对于每个数字只绘制那些与当前点类型匹配的点:

    stats 'test.data' using 3 nooutput
    unset key
    set style data points
    plot for [i=STATS_min:STATS_max] 'test.data' using 2:( == i ?  : 1/0) lt 1 pt i ps 2
    

  1. 使用 labels 绘图样式和一系列 unicode 点符号,您 select 使用第三列的值作为索引。 (例如使用 http://www.shapecatcher.com or http://decodeunicode.org/en/geometric_shapes 找到合适的符号)

    unset key
    set encoding utf8
    symbol(z) = "•✷+△♠□♣♥♦"[int(z):int(z)]
    plot 'test.data' using 2:1:(symbol()) with labels textcolor lt 1