Colors Linecolor(不太)变量

Colors Linecolor(不太)变量,colors,gnuplot,average,boxplot,Colors,Gnuplot,Average,Boxplot,我试图用一个箱线图来表示数据,并添加一些内容。 在箱线图的顶部,我还想打印所有的数据点,因为没有那么多。 将有许多并排的箱线图,并且数据点将对应,因此一个图中的每个数据点将在另一个箱线图中表示,但是它们的顺序可能会改变。这就是为什么我要给点上色。 到目前为止,我已经做到了: plot data using (1):($1) with boxplot,\ data using (1):($1) with points lc variable [

我试图用一个箱线图来表示数据,并添加一些内容。 在箱线图的顶部,我还想打印所有的数据点,因为没有那么多。 将有许多并排的箱线图,并且数据点将对应,因此一个图中的每个数据点将在另一个箱线图中表示,但是它们的顺序可能会改变。这就是为什么我要给点上色。 到目前为止,我已经做到了:

plot    data using (1):($1) with boxplot,\
            data using (1):($1) with points lc variable
            [more plots...]
这需要在每个数据文件中增加一列,用于指定线条颜色。如果我有这样一个专栏,或者如果我愿意加上它,这很好

是否有另一种方法可以遍历线型(或颜色),从而使用样式1打印第一个点,使用样式2打印第二个点,以此类推

这似乎是一个非常简单的问题,可以通过一些我找不到的命令来解决,也可以通过从不同的文件中获取线型来解决,这对于所有绘图都是一样的(如果在gnuplot中可以)

此外,我想知道boxplot命令是否还具有能够绘制平均值的附加功能(或者我是否绝对需要gnuplot4.6中的stats命令,或者某种hack)

有时,能够简单地将平均值添加到箱线图中是件好事

是否有另一种方法可以遍历线型(或颜色),从而使用样式1打印第一个点,使用样式2打印第二个点,以此类推

对。Gnuplot提供了大量的
伪列
。要获取更多信息,请参阅

help datafile using pseudocolumn
但是它的要点是,您可以使用
列(0)
进行此操作。我相信迭代从0开始。由于没有
ls 0
,因此需要添加1

plot data using (1):($1) with boxplot,\
     data using (1):($1):(column(0)+1) with points lc variable
此外,我想知道boxplot命令是否还具有能够绘制平均值的附加功能(或者我是否绝对需要gnuplot4.6中的stats命令,或者某种hack)

我认为您需要gnuplot4.6或某种类型的hack。一个这样的黑客(将使用gnuplot 4.4,但不是更早)可能是:

sum=0.0
npt=0
compute_sum_npt(x)=(npt=npt+1,sum=sum+x,NaN)
set term unknown
plot data u 1:(compute_sum_npt($1))
avg=sum/npt

set term ...
set output ...
plot data using (1):($1) with boxplot,\
     data using (1):($1):(column(0)+1) with points lc variable,\
     avg w lines ls -1
如果您的gnuplot版本早于4.4,则需要使用shell命令来计算平均值。像
awk
这样的东西就足够了

是否有另一种方法可以遍历线型(或颜色),从而使用样式1打印第一个点,使用样式2打印第二个点,以此类推

对。Gnuplot提供了大量的
伪列
。要获取更多信息,请参阅

help datafile using pseudocolumn
但是它的要点是,您可以使用
列(0)
进行此操作。我相信迭代从0开始。由于没有
ls 0
,因此需要添加1

plot data using (1):($1) with boxplot,\
     data using (1):($1):(column(0)+1) with points lc variable
此外,我想知道boxplot命令是否还具有能够绘制平均值的附加功能(或者我是否绝对需要gnuplot4.6中的stats命令,或者某种hack)

我认为您需要gnuplot4.6或某种类型的hack。一个这样的黑客(将使用gnuplot 4.4,但不是更早)可能是:

sum=0.0
npt=0
compute_sum_npt(x)=(npt=npt+1,sum=sum+x,NaN)
set term unknown
plot data u 1:(compute_sum_npt($1))
avg=sum/npt

set term ...
set output ...
plot data using (1):($1) with boxplot,\
     data using (1):($1):(column(0)+1) with points lc variable,\
     avg w lines ls -1
如果您的gnuplot版本早于4.4,则需要使用shell命令来计算平均值。像
awk
这样的东西就足够了