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

Tom*_*kin 3 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
Run Code Online (Sandbox Code Playgroud)

所以我希望直方图是 x 轴相对于 y 轴,但在每个 x 轴“bin”内有 3 个不同的条形图,每组一个,如下图所示:

在此输入图像描述

我可以使用 x 相对于 y 的直方图plot 'file.dat' using 1:3,但无法将其按第二列分组。我该怎么做呢?

Edw*_*ard 5

我这样做的方法是重新格式化列中的数据,如下所示:

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
Run Code Online (Sandbox Code Playgroud)

然后就是通常的 gnuplot 直方图。

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"
Run Code Online (Sandbox Code Playgroud)

结果如下: 在此输入图像描述

  • +1,要重新排列数据,您可以使用 awk 脚本,例如 `awk '{a[$1]=a[$1] FS $3}END{for(i in a)print i,a[i]}' data2.dat `。 (4认同)