【问题标题】:Plot a histogram grouped by an extra column绘制按额外列分组的直方图
【发布时间】:2014-11-07 13:51:20
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: gnuplot histogram


    【解决方案1】:

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

    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 直方图了。

    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 '{a[$1]=a[$1] FS $3}END{for(i in a)print i,a[i]}' data2.dat 这样的 awk 脚本。
    猜你喜欢
    • 1970-01-01
    • 2022-09-24
    • 1970-01-01
    • 2018-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-04
    • 2021-10-16
    相关资源
    最近更新 更多