首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建具有可变bin宽度的直方图

如何创建具有可变bin宽度的直方图
EN

Stack Overflow用户
提问于 2014-03-25 20:20:27
回答 2查看 2.7K关注 0票数 3

我和其他人的阴谋都是不成功的。一个简单的问题是使用以下数据:

代码语言:javascript
复制
age range - frequency - central band width -  bin width  - height (respectively)
1-4    - 30      -      2.5     -         3    -   10
5-6   -  20     -       5.5        -      1   -    20
7-17  -  30       -     12      -         10   -   3

随着年龄的增长,沿X轴方向呈线性关系,1~4的仓宽为3,高为10,5~6的仓宽为1,高为20,7-17为10,高为3。

如何将这些数据放入Word/记事本文档.dat文件中?然后如何使用它们在gnuplot中建立直方图?

EN

回答 2

Stack Overflow用户

发布于 2014-03-25 21:08:32

我将使用以下数据文件格式(仅使用空格分隔字段):

代码语言:javascript
复制
"age range" "frequency" "central band width" "bin width" "height"
1-4         30          2.5                  3           10
5-6         20          5.5                  1           20
7-17        30          12                   10          3
  • 若要使用可变框宽绘制,请使用boxes绘图样式。它允许您使用列中的值作为宽度。
  • 对于xtic(1),您可以使用第一列中的条目作为xticlabel。

因此,一个相当简单的绘图脚本如下:

代码语言:javascript
复制
set style fill solid noborder
set yrange [0:*]
set offset 1,1,1,0
plot 'file.txt' using 3:5:4:xtic(1) with boxes notitle

版本4.6.3和pngcairo终端的结果是:

票数 6
EN

Stack Overflow用户

发布于 2018-01-25 11:55:50

昨晚,我处理了一个相当不错的可变宽度框示例。我正在绘制由FIO存储性能测试包生成的延迟直方图数据。使用我的编译选项,我有1856个回收箱,如下所示:

  • 1 ns宽从0到128 ns (128个垃圾箱)
  • 2ns宽从128-256 ns (64个垃圾箱)
  • 4ns宽从256到512 ns (64桶)
  • 宽8ns,从512到1024 ns (64桶)
  • 等等。

我在情节时的延迟值以微秒为单位(FIO提供纳秒,但出于历史原因,我想要微秒)。我没有机会在我的数据中包括垃圾箱宽度。所以我做了这个:

  • f(x) =(2**)(int(log(x*1000)/log(2))-6)/1100
  • 绘制"temp“u1:2:(F(第(1)栏)),框fs透明实心0.7个无边框标题"$legend"$base_plot

f(x)定义返回给定延迟的框宽-它的工作方式如下:

  1. 首先,x*1000使我回到纳秒。
  2. log(x*1000)/log(2)取纳秒计数的基数2对数。
  3. int()只给出整数部分。请注意,现在,比如说128 ns,我将有7。
  4. -6把我带到垃圾箱宽度的基本2日志。
  5. 2 **把我带到垃圾箱的宽度。
  6. /1000从纳秒到微秒返回我。

然后,我只使用绘图命令中的f(延迟)作为框的宽度。

据我所知,这个方法似乎工作得很好。它不能给出x< 64 ns的正确结果,但是我没有那么小的数据,所以它就算出来了。可以使用条件表达式对范围的该部分进行修补。

我认为这里的主要观察是:( a)您不需要将宽度作为文字数据--如果您可以从您拥有的数据中计算它,那么您是黄金的,并且( b)列(N)是$n的另一种替代方法,它是在绘图命令中表示列值的一种方式。在我的例子中,所有这些都在bash脚本中,bash截获了$1。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22645428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档