Gnuplot 绘制一个按额外列分组的直方图

Gnuplot 绘制一个按额外列分组的直方图,gnuplot,histogram,Gnuplot,Histogram,我无法将这样的数据文件绘制为分组直方图 x-axis group y-axis 1 11 0.1123 1 22 0.1687 1 33 0.1312 2 11 0.4567 2 22 0.4578 2 33 0.7465 3 11 0.7532 3 22 0.7742 3 33 0.7123 set style fill solid 1.00 border -1 set style data histogram set style histogram cluster gap 2 plot '

我无法将这样的数据文件绘制为分组直方图

x-axis group y-axis
1 11 0.1123
1 22 0.1687
1 33 0.1312
2 11 0.4567
2 22 0.4578
2 33 0.7465
3 11 0.7532
3 22 0.7742
3 33 0.7123
set style fill solid 1.00 border -1
set style data histogram
set style histogram cluster gap 2
plot 'data2.dat' using 2 t "11", '' using 3 t "22", '' using 4:xtic(1) t "33"
所以我希望直方图是x轴对y轴,但在每个x轴“bin”中有3个不同的条,每组一个,如下图所示:


我可以使用
plot'file.dat',使用1:3
获得x相对于y的直方图,但无法通过第二列将其分组。如何执行此操作?

执行此操作的方法是重新格式化列中的数据,如下所示:

x-axis group11 group22 group33
1 0.1123 0.1687 0.1312
2 0.4567 0.4578 0.7465
3 0.7532 0.7742 0.7123
然后是通常的gnuplot直方图

x-axis group y-axis
1 11 0.1123
1 22 0.1687
1 33 0.1312
2 11 0.4567
2 22 0.4578
2 33 0.7465
3 11 0.7532
3 22 0.7742
3 33 0.7123
set style fill solid 1.00 border -1
set style data histogram
set style histogram cluster gap 2
plot 'data2.dat' using 2 t "11", '' using 3 t "22", '' using 4:xtic(1) t "33"
结果如下所示:

+1,要重新排列数据,您可以使用awk脚本,如
awk'{a[$1]=a[$1]FS$3}END{for(a中的i)print i,a[i]}'data2.dat