일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- australia
- english writing
- 그림
- 독립기술이민
- 3분논문
- 제주여행
- Secret Kingdom
- Skilled Independent Migration
- Yerang Monica Hwang
- 예랑이
- Monica Hwang
- 황평화
- Subclass 189
- ielts writing
- 호주 이민
- 멜버른
- melbourne
- 책
- Skilled Independent visa (subclass 189)
- IELTS
- 황예랑
- SF
- General training module
- 자작동화
- Rosie Banks
- 평화
- 호주 영주권
- Book Review
- Book
- 호주
Archives
- Today
- Total
꾸로네
gnuplot 에서 반복문 쓰기 본문
자료를 정리하고 그래프를 그리다보면 여러 자료를 가지고 동시에 그래프를 그리고 싶은 경우가 생긴다.
예를 들면
1.dat
2.dat
3.dat
...
9.dat
라는 자료 파일이 있다고 할 때, 이 그래프를 일일이 그린다는 것은 정말 따분하고 지루한 일이다. 그래서 흔히 다른 프로그램에서 알고 있는 for나 while을 이용한 반복문을 사용하고 싶어진다. 그런데 안타깝게도 gnuplot에는 그런 기능이 없다. 저런.. ㅠㅠ
그래서 찾아보니 방법을 알려주는데, 그 방법이라는 것이 Shell Script를 써서 반복되는 Gnuplot Script를 생성하라는 것이다. 뭐 그리 마음에 드는 방법은 아니지만 딱히 방법도 없으니 어찌 하겠는가. 그래서 간단한 반복문을 만드는 스크립트를 짜서 올려본다. 그럼 먼저 Shell Script를 짜 보자.
echo "set xrange[0:1]"
for ((ii=1; ii<=9; ii++))
do
echo "set terminal wxt $ii"
echo "plot sin($ii*x)"
done
echo "pause -1"
이것은 딱 보면 알겠지만 Sine 함수의 그래프를 그 계수를 바꿔가면서 그리는 것이다. 위의 내용을 적당한 이름의 파일로 저장한다. a.bat 라고 저장했다고 해보자. 그럼 이 파일을 chmod a+x a.bat 를 통해서 실행 가능한 파일로 바꾸고, 다음과 같은 명령행을 써서 실행한다.
$ ./a.bat > sine.dem
그럼 sine.dem 에는 다음과 같은 스크립트가 들어있을 것이다.
set xrange[0:1]
set terminal wxt 1
plot sin(1*x)
.......
set terminal wxt 9
plot sin(9*x)
pause -1
이 스크립트를 실행하기 위해서는 다음처럼 써 주면 된다.
$ gnuplot sine.dem
그럼 창이 9개가 순서대로 뜨면서 서로 다른 계수를 가지는 sine 함수의 그래프를 그려 줄 것이다. 아래에 있는 그래프처럼 말이다.
이 방법은 반복의 갯수에 따라 *.dem 파일의 내용이 엄청나게 길어지는 단점이 있지만 그래도 어쩌겠는가. 손으로 일일이 쓰는 것 보다는 낫지 않은가. 요즘 하드 용량이 커져서 1000줄 짜리 스크립트 정도는 가볍게 받아주는 시대이니 큰 부담 없이 해도 되지 않을까 한다.
'연구자료 > gnuplot' 카테고리의 다른 글
gnuplot postscript terminal 설정할 때 주의할 점 (2) | 2009.10.14 |
---|---|
gnuplot, X축과 Y축을 다른 자료 파일에서 가져오기. (0) | 2009.10.02 |
gnuplot, 현재 디렉토리 표시: pwd (0) | 2009.10.01 |
gnuplot으로 보조선 넣기, 보조상자 그리기. (4) | 2009.09.23 |
Comments