Gnuplot 中的双色箱线图

Two colour boxplot in Gnuplot

我的实验数据文件如下

### expt.dat
### User 1  User 2  User 3  User 4 
### Units mg/g 
10.07   9.92    9.79    9.68
10.08   9.91    9.82    9.63
10.02   9.92    9.76    9.64
10.04   9.92    9.86    9.64
10.01   9.89    9.76    9.69
10.06   9.88    9.79    9.71

绘制箱线图的数据文件是

### boxplot.dat 
### Description              User 1 User 2  User 3  User 4  
Minimum                     10.01   9.88    9.76    9.63
First Quartile-Minimum      0.015   0.015   0.0075  0.01
Medium-First Quartile       0.025   0.02    0.0225  0.02
Third Quartile-Median       0.0175  0.005   0.0225  0.0275
Max-Third Quartile          0.0125  0       0.0475  0.0225

我希望在 Gnuplot 中有一个双色箱线图。但是我无法修改

中的代码

任何建议都会有所帮助。

Edit after response

根据@theozh 的建议,我修改了代码以满足我的需要。

##
##
reset session 
##
set terminal postscript eps enhanced colour font 'Times-Roman,12' size 3in,2in  
set output "Boxplot_s2s3.eps"
set xtics out scale 1.5 
set ytics out scale 1.5
set tics font ", 12"
set key inside top right spacing 1.55 font ",10" noautotitle 
set ylabel "milligrams per gram" font ",12"
set style fill solid 0.3
set grid x,y
set style boxplot outliers pointtype 5 medianlinewidth 2.0
set for [i=1:4] xtic (sprintf("User %d",i) i)
plot for [i=1:4] 'boxplot_s1.dat' u (i):i w boxplot lc i title sprintf("User %d",i), \

对于双色箱线图,我希望绘制 u1_1 & u1_2, u2_1 & u2_2, u3_1 & u3_2 and u4_1 & u4_2 以及不同的颜色序列。 修改后的数据文件是

# data2.dat 
# User 1    User 2  User 3  User 4 
19.78   19.90   19.38   19.22
19.79   19.92   19.34   19.22
19.75   19.91   19.33   19.25
19.79   19.93   19.33   19.21
19.74   19.94   19.30   19.20
19.79   19.94   19.35   19.20

# data3.dat
# User 1    User 2  User 3  User 4 
39.43   38.35   37.55   37.75
39.45   38.37   37.57   37.70
39.41   38.41   37.58   37.68
39.45   38.35   37.57   37.61
39.47   38.34   37.53   37.78
39.49   38.41   37.58   37.72

如果我没有正确理解你的问题,你为什么不直接对你的实验数据使用 gnuplot 的绘图风格 with boxplot? gnuplot 将为您计算。

在下面的示例中,数据位于数据块 $Data 中的代码中。 如果您的数据在文件中,请跳过数据块并更改绘图命令,例如 plot for [i=1:4] 'expt.dat' u (i):i w boxplot ... 根据您的喜好,您可以将用户添加为 xtic 标签或图例。 如果您有 4 个用户,“双色箱线图”是什么意思?

代码:

### boxplot
reset session

$Data <<EOD
### expt.dat
### User 1  User 2  User 3  User 4 
### Units mg/g 
10.07   9.92    9.79    9.68
10.08   9.91    9.82    9.63
10.02   9.92    9.76    9.64
10.04   9.92    9.86    9.64
10.01   9.89    9.76    9.69
10.06   9.88    9.79    9.71
EOD

set style fill solid 0.3
set key noautotitle
set grid x,y

set for [i=1:4] xtic (sprintf("User %d",i) i)

plot for [i=1:4] $Data u (i):i w boxplot lc i title sprintf("User %d",i), \
### end of code

结果: