在gnuplot的Boxplot。如何在一个箱图中绘制不同的组?

时间:2015-08-17 21:20:31

标签: gnuplot boxplot

我有一个包含10列数据(download data)的文件,不同列中的样本之间存在差异。测量是在相同的时间进行的,但频率不同,并且我有不匹配。我尝试使用using语句using x:data:width:level的第四个字段将它们绘制为不同的组,并使用以下代码:

set style fill solid 0.25 border -1
set style boxplot outliers pointtype 7
set style data boxplot

set title 'all_templates' font 'Arial,14';
set xtics ('1' 1, '2' 2, '3' 3, '4' 4, '5' 5, '6' 6, '7' 7, '8' 8, '9' 9, '10' 10) scale 0,0
plot for [i=1:10] 'all_template.dat' using (i):i:(1):10 notitle`

但情节看起来很奇怪,例如第9列的中位数约为300毫秒,但在图中,代表第9列的方框不超过200.似乎箱图一直考虑到垃圾箱的数量,虽然我指定有10个不同的组。任何帮助将不胜感激! enter image description here

1 个答案:

答案 0 :(得分:2)

数据文件中的列具有不同的长度,您可以使用制表符作为列分隔符。 Gnuplot默认使用任何空格作为列分隔符,并将连续的空格合并为单个空格。因此,两个或三个选项卡被视为单个列分隔符,这会使您的列混乱。使用

set datafile separator '\t'

将所有值保存在正确的列中。

set style fill solid 0.25 border -1
set style boxplot outliers pointtype 7
set style data boxplot
set boxwidth 0.7 absolute

set title 'all_templates' font 'Arial,14'
set xtics 1,1,10 scale 0
set datafile separator '\t'
plot for [i=1:10] 'all_template.dat' using (i):i notitle

enter image description here