과꾸로

[gnuplot] 반복문 쓰기: gnuplot 에서 for 를 사용해서 많은 그래프 한 번에 그리기 본문

연구자료

[gnuplot] 반복문 쓰기: gnuplot 에서 for 를 사용해서 많은 그래프 한 번에 그리기

(gguro) 2016. 12. 13. 14:31

[gnuplot] 반복문 쓰기: gnuplot 에서 for 를 사용해서 많은 그래프 한 번에 그리기


gnuplot에서 반목문 쓰기를 알아보자.



문제: 

gnuplot을 이용해 같은 형식의 다수의 data 파일의 그래프를 한 번에 그리고 싶다면 어떻게 하면 좋을까?



답:

다음의 방법을 사용한다.


do for [t=0:50] {

    outfile = sprintf('animation/bessel%03.0f.png',t)

    set output outfile

    splot u*sin(v),u*cos(v),bessel(u,t/50.0) w pm3d ls 1

}


위 코드는 http://www.gnuplotting.org/gnuplot-4-6-do/ 에서 가져왔다.'


사실 정확하게 위 코드는 다수의 data파일을 그리는 것은 아니고, 변수를 바꾸면서 다수의 그래프를 output file로 저장하는 것이다. 위 코드를 조금만 바꾸면 입력 데이터마다 그래프를 출력해 파일로 저장하도록 바꿀 수 있다.


실제로 내가 사용한 gnuplot 코드는 다음과 같다.



핵심 코드 부분은


do for [ii=-75:90:15] {

    outfile = sprintf('scat_%03ddeg.png',ii)

    set output outfile


    datLCP = sprintf('scat_%03ddeg_LCP.dat',ii)

    datRCP = sprintf('scat_%03ddeg_RCP.dat',ii)

    

    titlename = sprintf('%03d deg',ii)


    set title titlename


    plot datLCP u 1:5 \

     w l title 'LCP' lt 1 lw 4 lc rgb 'blue' ,\

     datRCP u 1:5 \

     w l title 'RCP' lt 1 lw 4 lc rgb 'red'

}


데이터마다

- 입력데이터 (datLCP, datRCP)
- 그래프 제목 (titlename)
- 저장할 파일 이름 (outfile)

을 바꿔서 그리도록 변형한 코드이다.




이런 멋진 12개의 그래프를 한 번에 얻을 수 있다.


2016년 12월 13일

겨울떨개


gnuplot 관련 다른 글:





Comments