GNU_PLOT_사용법.ARABOZA

matplotlib 말고도 무료로 그래프를 그려주는 프로그램이 있어?! 게다가 파이썬을 몰라도 사용할 수 있어?!소문을 확인하러 직원이 찾아갔다…(행인1) : 그만 말해! 요즘 우리 동네에서는 그거 모르면 스파이야~(행인2) : 아니(~~~~) 모르는 사람도 있나?

(스태프): 아니, 아주머니, 그게 뭐예요?!

직원이 알아본 끝에 알게 된 바로 그건 gnuplot! 게다가 터미널에서 나오지 않아도 그림을 그릴 수 있다던데..?!

========================================================================================== GNUplot how to use..gnuplot은 스크립트로도 실행할 수 있지만 일단 가장 간단하게 채팅창에서 실행해보자. 쉽게 보면.. 하고 치면 그래프가 보인다. 뭔가 좀 어설프긴 하지만 공짜로 이 정도 퀄리티라면 나쁘지 않다.

물론 당장 화면에서 확인하려면 엑스매니저와 같은 부가적인 프로그램이 있어야 하지만 최근 코로나19 때문에 엑스셸, 엑스ftp, 엑스매니저를 모두 무료로 풀고 있으니 굳이 말할 필요는 없다.

옛날에는 일부러 무시하고 ‘내가 쓰려면 모바Xterm이 더 나은 것 같아~’, ‘무아~’라고 했는데 확실히 Xshell이 제일 좋은 것 같아.

물론 sin(x) 같은 것을 그리기 위해 gnuplot을 사용하는 것은 아니다. 우선 데이터 파일을 줬을 때 그래프로 그리는 방법만 기억해두자.여기에 Data.dat라는 데이터 파일이 있다.위와 같이 한 줄에 3개의 데이터가 있는 경우도 딱 들어맞는다.셋이 되면 넷, 다섯 개… 이해하는 것은 말할 것도 없이 잔소리, 나이가 들면 쥐가 듣는다.

터미널에 시키는 대로 쓰면 데이터 파일을 이용하여 그래프를 그릴 수 있다.한 그래프에 두 개를 동시에 그리고 싶다면 두 번째 명령어처럼 쉼표로 구분하여 쓰면 된다.

(using 1:2나 using 1:3을 사용하지 않으면 어떻게 되냐고 묻는다면 처음 두 가지만 읽고 그래프를 그려준다.)

아니, 선생님 가위바위보하고 십자걸이로 그려놓으면 이거 알겠냐고 물었더니…withline/withlinepoints 등의 옵션을 뒤에 붙이면 선으로 연결된다.

그래도 뭔가 좀 부족해 보여.축 범위도 지정하고 싶고 축 간격도 그래프 색상도 정하고 싶고 제목도 그래프 항목명도 정하고 싶다.일단 축 범위 정하는 방법부터 살펴보자.

다음으로 축분할 간격을 정하는 방법을 살펴보자. xtics/ytics라는 함수로 축분할 간격을 정할 수 있는데 시작값/간격/마지막값을 넣어야 한다.1, 0.5, 10:1부터 10까지의 0.5 간격으로 축을 나눈다. 뭐 이런 느낌이다.등간격이 아닌 축분할도 가능한데(1,1.5,2.0.3.0,4.5,5.5,7.0,8.5,10) 이렇게 소괄호에 축분할 값을 일일이 지정하는 방법이다.

축 나누기의 간격을 숫자로만 쓸 수 있는 것은 아니다. 각 값마다 숫자가 아닌 이름(예를 들어 학생별로 점수)을 매기고 싶다면..

만약 축 나누기 간격을 표시하고 싶지 않다면 “plot”하기 전에 한 줄 추가로 쓰면 된다.그런데 정말 필요한 경우가 아니라면 굳이 축 간격을 지우지 말자.(울음)

다음으로, 「그래프명/축명/데이터명/데이터명 표시 위치」를 정하자.각각 title, xlabel/ylabel, plot 내부의 title, key로 결정되지만 코드로 확인하면 별다른 내용은 없다.set키의 경우 오른쪽 상단 모서리 부분의 위치가 입력한 숫자로 결정된다.

이제 세세한 부분을 알아보자. y=0을 그래프로 표시하는 법 그래프틀 상자를 없애는 법 바둑판식 격자를 표시하는 법 x/y축을 로그 스케일로 바꾸는 법 등을 통째로 알아보자. 이 옵션들은 setzeroaxis/setborder/setgrid/setlogscalex(y) 등으로 켜거나 끌 수 있지만 켤 경우 set/off할 경우 unset으로 생각하면 된다.로그 스케일의 경우는 굳이 그래프로 그리는 데 사용하지 않았다.

별로 대수롭지 않아서 여기서는 추가로 xrange/yrange를 쉼표 대신 “to”로 대체할 수 있다는 것과 using->u/with->w로 대체할 수 있다는 것을 일단 표시해 둔다.

다음은 그래프에 그려지는 선의 모양/두께/색깔을 바꾸는 명령어를 살펴보자.각각 dashtype/linewidth/line color라는 키워드로 변경할 수 있다.아래의 경우에는 입력한 명령에 따라 선의 형태는 2번형/두께는 4/색은 3번색에 해당하는 그래프가 그려졌다.

그런데 이쯤 되면 뭔가 plot 뒤에 너무 끈적끈적한 게 아닌가 하는 생각이 든다.한 그래프에 그리는 그래프는 특별한 경우가 아니면 대부분의 색을 제외하고는 같은 형식인데 어딘가 따로 띄어 쓸 수는 없을까?그런 경우에는 style이라는 것을 정의해 놓고 사용하면 plot 명령어의 길이를 나름대로 짧게 할 수 있다.위와 같은 그래프를 그릴 경우에 style을 사용하면 다음과 같이 짧아진다.

plot에서 line style 1번을 선택하면 1번 모양/두께 4/3번 색 그래프를 직접 그려준다.2번 스타일, 3번 스타일 등으로 정의해 놓고 필요할 때 번호로 불러오면 편할 것 같아.

대충 써보면 아래 코드가 대충 정리되어 있다.

error: Content is protected !!