감동, 마음이 움직이는 것

[gnuplot] histogram data file에서 바로 binning해서그리기 + 결과 저장하기 본문

Tips (Utility, Computer Language, and etc.)

[gnuplot] histogram data file에서 바로 binning해서그리기 + 결과 저장하기

Struggler J. 2017. 1. 4. 19:25

http://stackoverflow.com/questions/2471884/histogram-using-gnuplot


[1] histogram  데이터에서 바로 그리기

참고 http://stackoverflow.com/questions/2471884/histogram-using-gnuplot

min=0. //min value

max=230. //max value

n=23 //# of bins

width = (max-min)/n //bin width

set boxwidth width 

bin(x) = width*(floor(x-min)/width)+0.5) + min //position of point

set xr[min:max+width]

p 'test.txt' u (bin($1)):(1.0) smooth freq w boxes fill pattern 6 

  (bin($1)):(1.0)  이 부분에서 binning해주고 싶은 데이터의 컬럼 넘버를 $뒤에 써주면 됩니다.

뒤의 1데이터 파일중에 해당빈에 해당하는 데이터를 1로 카운트하겠다는 건데요. 

만약에 노말라이즈를 해주고 싶으면 전체 데이터 포인트 수로 나눠주면 됩니다. 

예를 들어  (bin($1)):(1.0/N) 이렇게요. 

만약에 해당 포인포인트 하나가 1로 취급되는 게 아니라 weight가 있다. 그리고 그 weight가 데이터의 컬럼에 있다. 

그러면  (bin($1)):($2) 이렇게 :뒤에 weight를 추가해주세요.

즉 : 뒤에 오는 weight가 곱해져서 binning이 되는거랍니다. 


 


[2] binning결과  데이터로 저장하기

set table "export.d"를 사용하면 됨.

set table "a.d"

p 'test.txt' u (bin($1)):(1.0) smooth freq w boxes fill pattern 6 

unset table