我正在用命令绘制直方图:
n=3
max=0.5
min=-2.5
width=(max-min)/n
hist(x,width)=width*floor(x/width)+width/2.0
plot "< awk '{if (\$1<3.9 && \$1>3.8) {print \$0}}' /path_to_file/" u (hist(\$2,width)):(1.0) smooth freq w boxes lc rgb "black" lt 1 lw 0.5 notitle
让我这样:
显然,我猜测基于数据文件,gnuplot
自行决定选择间隔[1.0:0.0] - [0.0:-1.0] - [ - 1.0:-2.0]箱子以[0.5:-0.5:-1.5]
我需要那些箱子使用间隔[0.5:-0.5] - [ - 0.5:-1.5] - [ - 1.5:-2.5],这会使箱子以[0.0:-1.0:-2.0]为中心< / p>
我该如何做到这一点?
答案 0 :(得分:0)
直方图中的间隔由函数hist
确定。 hist
函数将数字范围缩小为单个值,因此gnuplot可以在以hist
函数返回的值为中心的条形图中绘图。
在您的原始帖子hist(x,width)=width*floor(x/width)+width/2
中。因此,hist(x,width)=0.5
和width=1
会获得0 <= x < 1
。最终,您将得到一个以0.5
为中心的条形图。
现在,如果要将间隔设置为[-0.5:0.5],[ - 0.5:-1.5],依此类推,您可能需要更改hist
函数,使其返回{{ 1}} 0.0
和width=1
时。
-0.5 <= x < 0.5
答案 1 :(得分:0)
我认为你想要的binning功能是
hist(x,width) = width*(floor(x/width+0.5))
这是早期答案https://stackoverflow.com/a/13896530/834416
的等效但简化版本hist(x,width) = width*floor((x + width/2)/width)
我遇到了同样的问题,并在https://stackoverflow.com/a/24923363/834416
发布了答案,示例代码和输出