您应该能够使用关键字 variable
做出类似这样的操作:
plot 'datafile' using 1:2:3:4 w points ps variable lc variable
或者将该值映射到调色板上:
plot 'datafile' using 1:2:3:4 w points ps variable lc palette
关键字变量和调色板使gnuplot从文件中读取属性,两者都需要通过
using
读取额外的列。当然,所有使用的通常方法都适用--您可以对数据应用转换等:
plot 'datafile' using 1:2:3:($4+32.) w points ps variable lc palette
我记不清楚第三列是点大小还是颜色,现在没时间试验一下去弄明白。你可以自己试试,然后评论一下,或者等我有时间了再来更新。
其他一些属性(例如pointtype
)不能像variable
那样轻松地更改。最简单的方法是使用gnuplot三元运算符进行过滤。
首先,编写一个函数,根据数据文件中的1列返回一个点类型:
my_point_type(x) = x
在这里,我使用一个简单的身份函数,但它可以是任何内容。 现在,您可以循环处理您想要的点类型(这里是1-10),为每个创建一个图:
plot [for PT=1:10] 'datafile' u 1:((my_point_type($3) == PT) ? $2:NaN) with points pt PT
假设带有点类型信息的列是第三列,第二列包含位置信息。这也可以与我上面演示的内容相结合。
plot“datafile”using 1:2:(myvar1=$3):(myvar2=$4)notitle with points pt myvar1 ps myvar2
,但仍然出现了相同的未定义变量错误。 - Paradise... using 1:2:(myvar=$3,$3):(myvar=$4,$4) ...
,但我不确定它是否有效。 - mgilsonmatplotlib
,但并不是很多(主要是因为我太喜欢gnuplot了,并为它编写了自己的Python包装器)。祝你好运。 - mgilson