Linux   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux – 2d直方图制作大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我有一个包含两列的数据文件,比如 1.1 2.2 3.1 4.5 1.2 4.5 3.2 4.6 1.1 2.3 4.2 4.9 4.2 1.1 我想从两列做一个直方图,即得到这个输出(如果步长(或者我们在谈论直方图时的bin大小)等于0.1) 1.0 1.0 0 1.0 1.1 0 1.0 1.2 0 ... 1.1 1.0 0 1.1 1.1 0 1.1 1.2 0 ... 1.1 2.0 0
@H_607_14@
@H_607_14@
我有一个包含两列的数据文件,比如

1.1 2.2
3.1 4.5
1.2 4.5
3.2 4.6
1.1 2.3
4.2 4.9
4.2 1.1

我想从两列做一个直方图,即得到这个输出(如果步长(或者我们在谈论直方图时的bin大小)等于0.1)

1.0 1.0 0
1.0 1.1 0
1.0 1.2 0
...
1.1 1.0 0
1.1 1.1 0
1.1 1.2 0
...
1.1 2.0 0
1.1 2.1 0
1.1 2.2 1
...
...

有人可以给我一些建议吗?如果我可以设置COLR_899_11845@uns的值范围,那就太好了.在上述情况下,第1列值从1到4,与第2列相同.

已编辑:已更新以处理更多常规数据输入,例如浮点数.上述情况下的步长为0.1,但如果它可以为其他设置调谐,即如果步长范围(箱尺寸)例如是0.2或1.0,则会很好.
如果步长是例如1.0,那么如果我有1.1和1.8他们有相同的bin,我们必须一起处理它们(例如,在这种情况下的范围让我们说两个列0.0的两个. .4.0)

1.1 1.8
2.5 2.6
1.4 2.1
1.3 1.5
3.3 4.0
3.8 3.9
4.0 3.2
4.0 4.0

输出(如果bin大小= 1.0)

1 1 2
1 2 1
1 3 0
1 4 0

2 1 0
2 2 1
2 3 0
2 4 0

3 1 0
3 2 0
3 3 1
3 4 1

4 1 0
4 2 0
4 3 1
4 4 1

解决方法@H_675_43@
awk 'END {
  for (i = 0; ++i <= l;) {
    for (j = 0; ++j <= l;)
      printf "%d %d %d %s\n",i,j,\
        b[i,j],(j < l ? x : ORS) 
    }
  }
{
  f[NR] = $1; s[NR] = $2
  b[$1,$2]++
  }' l=4 infile

您可以试试这个(未经过全面测试):

awk -v l=4 -v bs=0.1 'BEGIN {
  if (!bs) {   
   print "invalid bin size" > "/dev/stderr"
   exit
    }
  split(bs,t,".")
  t[2] || fL++
  m = "%." length(t[2]) "f" 
  }
{
  fk = fl ? int($1) : sprintf(m,$1)
  sk = fl ? int($2) : sprintf(m,$2)
  f[fk]; s[sk]; b[fk,sk]++
  }

END {
  if (!bs) exit 1

  for (i = 1; int(i) <= l; i += bs) {
    for (j = 1; int(j) <= l; j += bs) {
      if (fl) {
        fk = int(i); sk = int(j); m = "%d"
        }
      else {
        fk = sprintf(m,i); sk = sprintf(m,j)
        }     
      printf "%s" m OFS m OFS "%d\n",(i > 1 && fk != p ? ORS : X),fk,sk,b[fk,sk]
      p = fk        
      }
    }
  }'  infile

@H_607_14@

大佬总结

以上是大佬教程为你收集整理的linux – 2d直方图制作全部内容,希望文章能够帮你解决linux – 2d直方图制作所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:d制作直方图
猜你在找的Linux相关文章
其他相关热搜词更多
phpJavaPython程序员load如何string使用参数jquery开发安装listlinuxiosandroid工具javascriptcap