For loop 仅更改gnuplot中一个数据点的颜色

For loop 仅更改gnuplot中一个数据点的颜色,for-loop,animation,gnuplot,gif,animated-gif,For Loop,Animation,Gnuplot,Gif,Animated Gif,我正在用gnuplot做一个gif,我把数据分块。我需要点是白色的,除了每个数据块的第一行,这将是一个橙色的点 目前我的代码是: #... do for [i=0:int(STATS_blocks-1)]{ plot "positions.txt" index i pt 7 ps 0.5 lc 'white' title "t = ".((i+1)*200)." Myr" } 如您所见,这会将每个数据点绘制为白色,包括第一行。编辑以显示可变的点大小。 如果我正确理解您的数据格式: set li

我正在用gnuplot做一个gif,我把数据分块。我需要点是白色的,除了每个数据块的第一行,这将是一个橙色的点

目前我的代码是:

#...
do for [i=0:int(STATS_blocks-1)]{
plot "positions.txt" index i pt 7 ps 0.5 lc 'white' title "t = ".((i+1)*200)." Myr"
}

如您所见,这会将每个数据点绘制为白色,包括第一行。

编辑以显示可变的点大小。

如果我正确理解您的数据格式:

set linetype 11 lc "orange"
set linetype 12 lc "white"

set style data points
do for [i=0:N] {
  plot "positions.txt" index i using 1:2:(column(0)>0 ? 0.5 : 2.0):(column(0)>0 ? 12 : 11) pt 7 ps variable lc variable
}

可变颜色(如果使用)总是从最后一个
using
列中提取。其他变量属性从那里返回

编辑以显示可变点大小

如果我正确理解您的数据格式:

set linetype 11 lc "orange"
set linetype 12 lc "white"

set style data points
do for [i=0:N] {
  plot "positions.txt" index i using 1:2:(column(0)>0 ? 0.5 : 2.0):(column(0)>0 ? 12 : 11) pt 7 ps variable lc variable
}

可变颜色(如果使用)总是从最后一个
using
列中提取。其他变量属性从那里返回

太好了,很好用。但是,如果我还想改变第一个元素的点大小,使它变大,比如说PS15,而不是其他元素的PS7,会怎么样?太好了,这很好。但是如果我还想改变第一个元素的pointsize并使其更大,比如说PS15,而不是其余元素的PS7,会怎么样?