일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Linux
- Jackson Electrodynamics
- 그래프
- 자연
- 메타표면
- 토막잭슨
- 자연 광자학
- gnuplot
- 겨울떨개
- 전자기학
- nature photonics
- 초록빛논문
- 메타물질
- octopus
- 양자 플라즈몬
- 물리학
- 자연 나노기술
- Photolithography
- 3분논문
- 리눅스
- 학술지
- 우분투
- 광자학
- TDDFT
- 플라즈몬
- impact factor
- metasurface
- 나노포토닉스
- 과학
- 논문
- Today
- Total
과꾸로
[gnuplot] 반복문 쓰기: gnuplot 에서 for 를 사용해서 많은 그래프 한 번에 그리기 본문
[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'
}
이런 멋진 12개의 그래프를 한 번에 얻을 수 있다.
2016년 12월 13일
겨울떨개
gnuplot 관련 다른 글:
[gnuplot] png 에서 그리스문자 (Symbol) 쓰기: set encoding utf8
[gnuplot] xticlabels - x축값. 숫자대신 글자. xtics in string
[gnuplot] 자료 첫 (행)가로줄을 범례로 쓰기 + 선택한 (열)세로줄 범위만 그리기
'연구자료' 카테고리의 다른 글
[Linux] 리눅스 Shell 명령어 cat을 이용해서 여러 파일 합치기 (0) | 2017.02.02 |
---|---|
[Linux] 리눅스 Shell 명령어. 반복문에서 숫자 출력 자릿수 일정하게 맞추기 (0) | 2017.02.02 |
[Linux] 리눅스 du 명령어 사용법: 폴더 용량 확인 (0) | 2016.11.15 |
[gnuplot] png 에서 그리스문자 (Symbol) 쓰기: set encoding utf8 (0) | 2016.11.06 |
[Photolithography] Negative resist: Spin-coating, baking, exposure and development conditions: AZ nLof 2020 (0) | 2016.10.17 |