꾸로네

gnuplot, X축과 Y축을 다른 자료 파일에서 가져오기. 본문

연구자료/gnuplot

gnuplot, X축과 Y축을 다른 자료 파일에서 가져오기.

(gguro) 2009. 10. 2. 00:37


gnuplot, X축과 Y축을 다른 자료 파일에서 가져오기.

gnuplot 이라는 물건을 처음 쓰기 시작했을 때부터, 늘 궁금했던 것인데, 그 궁금증이 차 올라서 더 이상 그냥 둘 수 없는 상태가 되었다. 그래서 찾아보니, paste라는 명령어가 있었다.

문제는, X축에 해당하는 자료는 file1.dat 에 있고, Y축에 해당하는 자료는 file2.dat 에 있는데 이걸 어떻게 그리겠냐는 것이다.
새로운 파일을 만들어서 두 자료를 긁어 붙이면 되겠지만, 그걸 매번 한다는 건 정말 귀찮은 일이니 말이다.
틀림없이 방법은 있을텐데 (사람들이 이런 귀찮은 일을 해결하지 않았을리가 없으니)
어떻게 하는지 모른채 살아오고 있었다.

자, 그 방법을 알려주마!

gnuplot> plot "< paste file1.dat file2.dat" using 2:4  w lp

이렇게 하면 된다고 바로 이런 사이트에 써 있었다.
사실 paste 라는 것은 gnuplot 의 명령어가 아니다. 이것은 리눅스 shell 명령어로, 두 파일의 자료를 옆으로 붙여주는 명령인 것이다. file1.dat 와 file2.dat 가 다음과 같다고 해보자.

file1.dat file2.dat
11 2
30 3
23 7
12 15
0.1 1.4
2.2 1.2
0.8 3.1
2.7 1.5

$ paste file1.dat file2.dat 
라고 하면, 다음과 같이 나온다.

11 2    0.1 1.4
30 3    2.2 1.2
23 7    0.8 3.1
12 15   2.7 1.5

즉 gnuplot 에서 리눅스 명령어를 실행시킬 수 있고 그 표시가 < 였던 것이다.

그럼 위 plot 명령을 써서 그림을 그리면 어떻게 되는지 보자.


뭐 그리 아름답진 않지만 어쨌든 그래프가 잘 표시되는 것을 볼 수 있다.
file1.dat 의 두번째 줄을 X축으로 하고, file2.dat의 두번째 줄을 Y축으로 해서 그래프를 그려준다.

더 공부할 문제: sort, awk 명령어를 gnuplot 에서 사용해보기.

소감: Open Source의 위력이란 참 대단하다. gnuplot 이라는 물건이 이렇게 엄청날 줄은 몰랐다. 이보다 더 그래프를 잘 그려주는 프로그램은 여태껏 못 본듯하다. 요즘 이걸 통해서 Fitting도 하고 있는데, Fitting 하는 과정과 결과물을 정확하게 보여주고, 원하는 식을 써서 Fitting을 할 수 있음을 알게 되었다. 멋진걸! 

내가 쓰고 있는 Open Source 프로그램:
gnuplot, octave, GIMP, InkScape, Open Cature, Open Office, Cygwin, TeX, MEEP, Linux(?) 등


Comments