감동, 마음이 움직이는 것

[gnuplot] 데이터 포인트 값의 총합을 그림 그리지 않고 구하기 본문

Tips (Utility, Computer Language, and etc.)

[gnuplot] 데이터 포인트 값의 총합을 그림 그리지 않고 구하기

Struggler J. 2021. 4. 14. 16:51

예를 들어, 어떤 한 라인을 그리는데 이 값들의 합이 1이 되도록 normalize시키고 싶다. 

그러면 다음과 같이 합을 해주는 함수를 정의한 뒤 

sum(tot, x) = tot + x                                                                                            #function define

do for [i=0:99]{
tot = 0

fname = sprintf('./data/t%g.d', 0.5*i)
p fname u ((tot=sum(tot,$3),0/0):0/0) notitle\                                              #0/0은 플랏하지 않는다는것을 의미한다. 여기서 3번째 col의 포인트합을 구할 수 있다. 
, fname u 1:($3/tot) notitle\                                                                           #얻은 값으로 나눠 전체 포인트의 합이 1이 되도록한다.

}