Graph 绘制不同数据文件的中值(使用gnuplot)

Graph 绘制不同数据文件的中值(使用gnuplot),graph,plot,statistics,gnuplot,Graph,Plot,Statistics,Gnuplot,我有4个不同的数据文件(针对季节),并且已经设法用中间带和其他东西制作了箱线图 但现在我想用一条简单的线展示一个季节的发展。 我希望gnuplot绘制四个季节的中值(可能是四分位数或标准差),并通过linespoints将它们连接起来 值在一列中的4个独立数据文件中-每列有一个中位数(和四分位数…)。我还想忽略前几个条目 我尝试了命令stats,但我总是在这里出错: stats 'VARIANTE 1\Habitate\Äschen\Vergleich\FRU\WUA_Vergleich.dat

我有4个不同的数据文件(针对季节),并且已经设法用中间带和其他东西制作了箱线图

但现在我想用一条简单的线展示一个季节的发展。 我希望gnuplot绘制四个季节的中值(可能是四分位数或标准差),并通过linespoints将它们连接起来

值在一列中的4个独立数据文件中-每列有一个中位数(和四分位数…)。我还想忽略前几个条目

我尝试了命令
stats
,但我总是在这里出错:

stats 'VARIANTE 1\Habitate\Äschen\Vergleich\FRU\WUA_Vergleich.dat' u 2 every ::5 label  "Ist_FRU"
stats 'VARIANTE 1\Habitate\Äschen\Vergleich\SOM\WUA_Vergleich.dat' u 2 every ::5 label "Ist_SOM"
stats 'VARIANTE 1\Habitate\Äschen\Vergleich\HER\WUA_Vergleich.dat' u 2 every ::5 label "Ist_HER"
stats 'VARIANTE 1\Habitate\Äschen\Vergleich\WIN\WUA_Vergleich.dat' u 2 every ::5 label "Ist_WIN"
我在这里定义了特殊的
xtics

set xtics ("Fru" 1, "Som" 2, "Her" 3, "Win" 4) scale 0.0  out font ",9"
后来想要绘制数据:

plot \
 (1):median_Ist_FRU notitle linestyle 1, \
 (2):median_Ist_SOM notitle linestyle 1, \
 (3):median_Ist_HER notitle linestyle 1, \
 (4):median_Ist_WIN notitle linestyle 1 
我想我没有正确理解命令
stats
plot
,对于一个有经验的用户来说,解决方案可能非常简单-但我尝试了许多不同的方法,但都没有奏效


提前谢谢

您对
stats
命令使用了错误的语法(如果您提供了错误消息,则会很有帮助)。您必须使用
名称
,其余为方便起见:

tmpl = 'VARIANTE 1\Habitate\Äschen\Vergleich\%s\WUA_Vergleich.dat'
stats sprintf(tmpl, "FRU") u 2 every ::5 name "Ist_FRU_"
stats sprintf(tmpl, "SOM") u 2 every ::5 name "Ist_SOM_"
stats sprintf(tmpl, "HER") u 2 every ::5 name "Ist_HER_"
stats sprintf(tmpl, "WIN") u 2 every ::5 name "Ist_WIN_"
绘图部分有点棘手:

reset
# these are some test values
Ist_FRU_median = 1
Ist_SOM_median = 0.5
Ist_HER_median = 1.5
Ist_WIN_median = 1.2

set xtics ("Fru" 1, "Som" 2, "Her" 3, "Win" 4) scale 0.0
quartil="FRU SOM HER WIN"
set samples 4
set xrange[0.8:4.2]
plot '+' using ($0+1):(value('Ist_'.word(quartil, int($0+1)).'_median')) with linespoints title ''
对脚本的粗略解释:通常,gnuplot只能在点与线出现在同一个数据文件中时才能将它们连接起来

为了模拟这种情况,我使用了特殊的文件名
+
,它在指定的范围内生成了大量样本(必须设置
xrange
才能使用
+
)。我使用了四个样本(
set samples 4
),在
using
语句中,当前样本的数量可以通过$0(或列(0))访问。样本编号从
0
变为
3

quartil
包含四个单词,稍后将提取这些单词来构造变量名。第一个单词的索引是
1
,因此我使用
单词(四分位数,$0+1)

如果变量名称为字符串,则其值可通过
value(string)
访问

试验数据的结果为: