如何使用gnuplot绘制直方图

时间:2019-09-04 23:11:25

标签: shell gnuplot histogram

我有一个文件,其电线长度在300-1000之间。如何使用GNUPLOT制作直方图,其长度为X轴(间隔为100),导线数为Y轴?

例如:

250 wire_0
350 wire_1
360 wire_2
800 wire_3

我想要一个高度为1的线表示wire_0,一个高度为2的线表示wire_1和wire_2,以及一个高度为1的线表示wire_3。

1 个答案:

答案 0 :(得分:1)

编辑#1

根据thisthis的答案,您可以尝试:

binwidth = 100
bin(x, width) = width*floor(x/width)

set tics out nomirror
set style fill transparent solid 0.5 border lt -1
set xrange [0:1000]
set xtics binwidth
set boxwidth binwidth
set yrange [0:3]

$data <<EOD
250 wire_0
350 wire_1
360 wire_2
800 wire_3
EOD

plot $data u (bin($1,binwidth)):(1.0) smooth freq with boxes notitle

结果

result

编辑#2

如果需要框上方的值,可以使用。

set table $data2
    plot $data u (bin($1,binwidth)):(1.0) smooth freq with boxes;
unset table

plot $data2 u 1:2 w boxes notitle , "" u 1:2:2 w labels offset 0,1 notitle

结果 result 2