昨天了解到一个极其NB的软件叫做Paw++(全称是Physics Analysis Workstation,详见http://en.wikipedia.org/wiki/Physics_Analysis_Workstation 和 http://wwwasd.web.cern.ch/wwwasd/paw/)。这是CERN从1986年开始开发的一个超强的统计、绘图软件。昨天在Ubuntu软件中心看到了它,还是GPL的,记得原来我爸也用过,于是将它安上试试。
需要找一些数据来做实验,于是选取了NOIP2009的得分情况(这个东西是高能物理用的,干这个有点大材小用:) )。Paw有一个自己的脚本语言,十分简单。记得处理数据的命令好像是NTUPLE,于是先
help nt
为什么不是help NTUPLE?因为paw很强的一点就是如果没有歧义,只要输入命令的前几个字母就OK了。
然后Paw弹出一个小窗口写出了NTUPLE的命令列表。
我们还是先获得数据吧。先上 http://www.student.gov.cn/bjnoi/tzgg/269720.shtml 把那个成绩表粘到 OpenOffice.org 电子表格 中,然后去掉表头、姓名一栏和变动原因一栏,编号一栏去掉“BJ-”,只保留编号数字。然后把这个ods导出成csv,命名为NOIP.csv放在家目录下面。
然后转到Paw,输入nt/cr 10 NOIP 6 ! ! id tmark son trade spy sudoku,nt/cr是NTUPLE/CREATE的简写,要是不太明白可以看看help nt/cr。接下来nt/read 10 NOIP.csv,程序返回223 events have been read,然后nt/scan 10,bingo!数据已经全部输进来了。接下来就是画图了。
开始画图。先nt/pl 10.tmark。得0分的确实不少啊!
这时我们想看看总分和sudoku一题得分是否有很大相关,输入nt/pl 10.tmark%sudoku。Paw输出了一个散点图。我们再用hi/pl 1000000(1000000是系统分配的图的编号)详细看一下。顺便试一下hi/pl 1000000 box、hi/pl 1000000 lego和hi/pl 1000000 surf。
通过这几幅图,我们可以看出,sudoku和tmark数独一题是得到高分的钥匙。
如果有兴趣,可以再看看tmark vs. spy,可以看出,spy得到90或100的人才有可能得高分。还可以再乱看看其他好玩的图形。
哈哈,玩完了,不错吧。Paw++就是这么个强悍的东西,今天主要是玩玩,可能连它1/100的功能都没有用上。追求更加强大功能的朋友可以看看同是欧核中心出的叫做ROOT的软件,也可以在Ubuntu的源里面找到。它是用来替代Paw的,功能更强,使用C/C++语法,我大概看了一下,使用起来比Paw稍微复杂一些。
最后说一声,这个东西似乎只有Linux版。





