살아가는 이야기

gnuplot으로 그래프 그리기 본문

컴퓨터, 풀어그림

gnuplot으로 그래프 그리기

우균 2008. 5. 19. 17:08
세상엔 똑똑한 사람들도 많아서, 또 착한 사람들도 많아서 gnuplot 같은 유틸리티를 손쉽게 사용해 볼 수 있다. gnuplot으로 수학 함수 그래프를 그리는 방법을 소개하고자 한다. gnuplot은 다음 홈페이지에서 다운로드 받을 수 있다.

http://www.gnuplot.info/

여기서 사용한 버전은 MS-Windows용 32비트 버전 4.2.3이다.

1. 설치하고 설정하기

gnuplot의 압축을 풀면 gnuplot/bin 폴더에 wgnuplot.exe라는 프로그램이 생긴다. 이 프로그램을 수행하면 된다.

처음 수행하면 글꼴이 이상하게 보일 수 있는데, 이 때 윈도우의 텍스트 영역에서 마우스 오른쪽 버튼을 클릭하여 나타나는 팝업 윈도우에서 "Choose Font..."을 선택하여 글꼴 크기를 조절하면 잘 보인다.

2. 함수 그리기

표준 함수는 바로 사용할 수 있기 때문에 다음 명령어를 치면 바로 함수를 그릴 수 있다.
gnuplot> plot sin(x)
gnuplot> plot sin(x)/x
여러 함수를 한 화면에 그릴 수도 있다. 이 때 각 함수 그래프를 구별하기 위해 title을 사용한다.
gnuplot> plot sin(x) title 'sin', tan(x) title 'tan'
좌표 축을 그릴 수도 있다. 좌표축을 나타내고 싶은 경우에는 나타내고자 하는 축이 x축인지 y축인지에 따라 다음 명령어를 친다.
gnuplot> set xzeroaxis
gnuplot> set yzeroaxis
좌표축을 다시 없애고 싶다면 set 대신 unset 명령어를 이용한다.
gnuplot> unset xzeroaxis
gnuplot> unset yzeroaxis

3. 포스트스크립트 파일로 출력하기

포스트스크립트(postscript) 파일은 인쇄 페이지를 기술하기 위한 언어다. 포스트스트립트 파일의 확장자는 .ps인데 ghostview/ghostscript를 통해서 확인하고 출력할 수 있다. 여기서는 postscript로 출력하는 방법을 설명한다.

보통 다음과 같은 세 가지 과정으로 postscript 출력을 수행한다.
  1. 윈도우 터미널에서 원하는 그림을 그린다.
  2. 터미널을 postscript로 변경한다.
  3. 출력 파일을 설정한다.
  4. 그래프를 다시 그린다(replot).
  5. 터미널을 windows로 다시 변경한다.
여기서 1번 과정은 위 1의 sin과 tan 그래프라고 가정하자.
gnuplot> plot sin(x) title 'sin', tan(x) title 'tan'
2번 과정을 수행하기 위해 size를 재설정하고 terminal 타입을 postscript로 변경한다.
gnuplot> set size 1.0, 0.6
gnuplot> set terminal postscript portrait enhanced mono dashed lw 1 "Helvetica" 14
3번 과정을 위해, 출력 파일을 "my-plot.ps"으로 설정하자.
gnuplot> set output "my-plot.ps"
4번 과정은 그냥 다음 명령어를 수행하면 된다.
gnuplot> replot
5번 과정을 위해 다음 명령어를 수행한다.
gnuplot> set terminal windows
사실 4번 과정을 수행하면 gnuplot/bin 폴더에 my-plot.ps가 생성된다. 이 파일을 확인해 보기 위해 더블클릭하면 다음과 같은 그림을 ghostview를 통해 확인할 수 있다.

사용자 삽입 이미지

참고자료

위에서 설명한 내용은 웹에 공개된 Gnuplot 4.0 tutorial에서 발췌한 것이다. 해당 문서의 URL은 다음과 같다.

http://www.duke.edu/~hpgavin/gnuplot.html

위 문서에는 실험 데이터를 출력하는 부분도 설명되어 있다.

KLDP에도 gnuplot 문서가 있다.

http://wiki.kldp.org/KoreanDoc/html/GnuPlot-KLDP/

좀더 자세히 체계적으로 설명한 문서이긴 하지만 version 3.7 기준이므로 version 4.0과 다소 다른 점이 있으니 주의해야 한다.
Comments