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
这样的东西就足够了