다음 이전차례

8. 그래프의 customize

그래프의 범위, 메모리의 변경, 타이틀의 표시 등의 그래프를 customize하는 방법을 설명합니다.

set 명령에 대해서...

여지껏 나왔습니다만, gnuplot의 customize는 보통 set  라고 입력합니다.

        gnuplot>set 'option'
설정된 환경을 보기 위해서는 다음과 같이 입력합니다.
        gnuplot>show 'option'
option에는 보고 싶은 것을 입력합니다. 모든 환경을 보고 싶은 경우에는
        gnuplot>show all
로 합니다. 아무것도 설정되어 있지 않아도 default의 설정이 표시됩니다.

8.1 축의 범위를 설정

축의 범위를 설정하는 것은 set 명령을 이용하는 것 이외에도 몇 가지 방법이 있습니다. 첫번째로
        gnuplot>plot [-2*pi:2*pi]cos(x)
라고 입력해 보세요. 이것으로 표시하는 루프의 x축의 범위는 -2pi로부터 2pi가 됩니다. 여기서 pi는 원주율입니다.

여기서 다음과 같이 입력하게 되면 x축뿐만 아니라 y축의 범위도 지정할 수가 있습니다.

        gnuplot>plot [-2*pi:2*pi][-1.5:1.5]cos(x)

즉, plot의 뒤 함수, 데이터파일의 앞에 그래프의 범위를 지정할 수 있습니다. 3차원의 경우도 동일하게 적용됩니다. 또 다음과 같이 지정해 y축만의 범위를 지정할 수도 있습니다.

지정하지 않는 축의 범위는 임의의 값을 취합니다. 상한이나 하한만을 지정할 수도 있습니다.

        gnuplot>plot [:2*pi]cos(x)
또 "set" 명령을 사용해
        set xrange[x_min:x_max]
        set yrange[y_min:y_max]
        set zrange[z_min:z_max]
로도 같은 결과를 나타냅니다. *_min에는 최소값을, *_max에는 최대값을 씁니다. [:]안은 위에서 설명한 것과 같이 설정할 수 있습니다. 이와 같이 해 범위를 지정 했을때는 이후의 그래프의 출력에 영향을 줄 수 있습니다. 원래의 기본값으로 돌리고 싶을 때에는
        gnuplot>set autoscale 'axes'
axes에는 범위를 지정하는 좌표축을 지정하면 됩니다. 지정할 수 있는 'axes'는 x,y,z,xy의 4가지입니다. 모두 되돌라고 싶을때에는 그냥
        gnuplot>set autoscale
라고 하면 됩니다.

8.2 축의 눈금을 변경

눈금의 폭을 변경하는 방법을 설명합니다. 눈금을 설정하기 위해서는 set의 옵션 중에서 xtics(혹은 ytics, ztics)를 사용합니다.
        gnuplot>set xtics start,incr,end
여기서 start는 눈굼의 시작, incr은 눈금의 폭, end는 종료의 위치를 지정합니다. 옵션 ytics, ztics도 같습니다. 예를 들어, x축의 눈금을 -3에서 3까지 0.5의 폭으로 새기고, y축의 눈금을 0에서 1까지 0.2의 폭으로 새기고, exp(x**2)의 그래프를 출력하기 위해서는
        gnuplot>set xtics -3,0.5,3
        gnuplot>set ytics 0,0.2,1
        gnuplot>plot [-3:3][0:1]exp(-x**2)
와 같이 실행합니다.

또, 같은 간격의 눈금나누기뿐만 아니라, 눈금을 나누는 위치를 자유롭게 지정할 수도 있습니다.

        gnuplot>set xtics {position{,position, ...})
과 같이 지정합니다. postion은 붙이고 싶은 눈금의 위치를 지정합니다. 예를 들면,
        gnuplot>set xtics(0,pi/8,pi/4,pi/2,pi)
        gnuplot>plot [0:pi]sin(x**2)
이 됩니다. 여기까지는 눈금에 수치를 지정했지만, 임의의 라벨을 지정할 수도 있습니다.
        gnuplot>set xtics("min"-pi,"counter"0,"max"pi)
        gnuplot>plot [-pi:pi]sin(x**2)
설정된 눈금의 값을 기본값으로 되돌릴 때에는 다음과 같이 고칩니다.
        gnuplot>set xtics
여기서 xtics의 경우는 x축, ytics, ztics는 y,z축의 값을 되돌립니다. 또, 눈금을 붙이지 않는 경우는
        gnuplot>set noxtics
라고 해 주면 됩니다.

8.3 그래프에 제목 표시

그래프에 제목을 붙이는 방법은
        gnuplot>set title "title"
와 같이 설정합니다. "title"에는 표시하고 싶은 제목을 ""로 입력합니다. 제목은 그래프의 상부 중앙에 표시됩니다.
        gnuplot>set title "example"
        gnuplot>splot sin(x)-cos(y)
제목의 위치를 지정하고 싶을 때는 다음과 같이 설정합니다.
        gnuplot>set title "title" x,y
x,y에는 수치를 대입합니다. 오른쪽으로 x, 위쪽으로 y만큼 이동합니다.
        gnyplot>set title "example" 30
        gnuplot>splot sin(x)-cos(y)
더 이상 제목이 표시하고 싶지 않을때는
        gnuplot>set title
라고 입력합니다.

8.4 축에 설명을 붙이기

각 축에 그 축에 대한 설명을 위한 라벨을 붙입니다. 축의 라벨의 표시하기 위한 명령은 다음과 같습니다.
        gnuplot>set xlabel "label"
        gnuplot>set ylabel "label"
        gnyplot>set zlabel "label"
이 label에 지정된 문자가 축의 라벨로서 표시됩니다. 라벨의 표시위치는 2차원에서는 x축의 중앙과 y축의 좌측 위에, 3차원에서는 x축의 중앙, y축의 중앙, z축의 상부가 됩니다. 제목과 같에 "label"의 뒤에
        gnuplot>set xlabel "label" x,y
제목 지정에서와 같이 x,y에 수치를 넣어 오른쪽으로 x, 위쪽으로 y만큼 위치합니다.
        gnuplot>set xlabel "Input" 30
        gnuplot>set ylabel "Output"
        gnuplot>plot [-pi/2:pi/2]cos(x**3)
라벨을 표시하지 않기 위해서는
        gnuplot>set xlabel
라고 하면 됩니다. :)

8.5 곡선의 이름 붙이기

지금까지의 그래프를 보면 그래프의 오른쪽 위에 곡선의 방정식, 데이터파일 등의 파일명 등이 표시되고 있었습니다. 이 그래프의 설명을 gnuplot에서는 "-"라고 부릅니다. -은 표현된 곡선의 그려진 차례로 위에 표시됩니다. 이 -의 표시를 자유롭게 변경할 수 있는 방법을 설명합니다.
        gnuplot>plot expression title "curve_name"
그래프의 방정식 데이터 파일 "expression"으 -로서 "curve_name"이 화면의 오른쪽 상단에 표시됩니다.
        gnuplot>plot [-pi/2:pi/2]sin(x) title "KEY 1"
그러나 이 상태에서는 -와 그래프가 겹쳐서 보기가 그다지 좋지 않습니다. 여기서
        gnuplot>set key x,y
삼차원의 경우는
        gnuplot>set key x,y,z
와 같이 해주면 좌표의 (x,y,z)의 위치에 -가 표시됩니다. 또, -을 표시하지 않는 경우는 다음과 같이 합니다.
        gnuplot>set nokey

8.6 좌표축의 표시

2차원의 그래프를 작성했을 때에, 그래프의 영역에 원점이 포함되어 있는 경우, 그래프에는 좌표축이 그려져 있어, 이것을 제어하는 방법을 소개합니다.
        set zerozxis    : x축, y축을 점선으로 표시
        set nozeroaxis  : x축, y축을 표시않음
        set xzeroaxis   : x축을 점선으로 표시
        set xnozeroaxis : x축을 표시하지 않음
이 명령은 2차원의 경우에 사용할 수 있는 명령이므로, 좌표축의 설정을 한 후에 3차원의 그래프를 그려도 어떤 영향이 없습니다.

8.7 경계의 표시

여기까지의 모든 예가 모두 2차원 그래프라 하면, 눈금 위치에 눈금을 나눈 경계가 표시되어 있습니다. 3차원이라면 x-y평면과 z축의 경계와 함께 표시되어 있습니다. 다음의 명령은 이 경계를 표시하는 지의 여부를 설정하는 명령입니다.
        set border    : 그래프의 경계를 표시
        set noborder  : 그래프의 경계를 표시하지 않음
        gnuplot>set noborder
        gnuplot>splot [-pi:pi][-pi/2:pi/2]sin(x)*cos(y)
단지 경계를 표시하지 않도록 설정해도 눈금은 그대로 남으므로, 이 명령을 사용할 때에는 눈금도 같이 없애는 것이 좋습니다.

8.8 격자의 표시

그래프에 격자를 표시할 수 있습니다.
        gnuplot>set grid   : 격자의 표시
        gnuplot>set nogrid : 격자 표시않음

8.9 log 그래프를 표시

log 그래프를 쓰는 것도 가능합니다.
        gnuplot>set logscale 'axes'
'axes'에 log 스케일로 하는 축을 지정합니다. 축의 지정에는 x,y,z및 그 모든 대칭되는 축을 지정할 수 있습니다. 축의 지정을 생략한 경우에는 모든 축이 log 스케일이 됩니다.
        gnuplot>set logscale xy
        gnuplot>splot [1:100][1:100]log(x)*log(y)
축을 원래의 스케일로 돌릴 때는 다음과 같은 명령을 지정합니다.
        gnuplot>set nologscale 'axes'
logscale의 명령과 같에 'axes'에는 x,y,z 및 그 모든 대칭을 지정할 수 있습니다.


다음 이전차례