과꾸로

[gnuplot] 축의 길이 고정하기. tics를 제외하고 축의 비율 정하기. set margin 본문

연구자료

[gnuplot] 축의 길이 고정하기. tics를 제외하고 축의 비율 정하기. set margin

(gguro) 2018. 6. 26. 10:06

그래프를 그리다보면, 그래프의 가로축 세로축의 길이는 그대로 두고 다른 데이터를 써서 그래프를 여러 개 그리고 싶을 때가 있다. gnuplot을 써서 그릴 때, 보통의 경우 큰 문제는 없는데, 축의 값이 바뀐다거나, label을 없애고 싶을 때는 문제가 된다. 




1. 문제: 축의 값이 바뀐 경우


아래 두 그래프를 보자. 



파란색과 빨간색 그래프의 가로축 크기가 바뀐 것을 알 수 있다. 바뀐 이유는, gnuplot에서 size(x,y)tics(x,y)label을 포함한 크기이기 때문이다. 파란색 그래프의 ytics의 값이 소숫점을 포함하다보니 더 길어졌는데, 빨간색의 ytics는 한 자리 숫자로 표현되기 때문에 두 그래프의 크기가 달라진 것이다. 두 그래프를 나란히 놓고 보여주고 싶을 때, 이렇게 그리고 싶지는 않을 것이다.


이 문제를 해결하고자 set size, set size ratio 등을 시도해봤지만 해결되지 않았다. size는 글씨까지 포함한 크기이기 때문이다. 




2. 해결: margin



해결방법은 margin을 이용하는 것이다. 위 그래프는 아래 코드 한 줄을 추가해서 그린 것이다. 가로축의 폭이 똑같아졌음을 확인할 수 있다.


set lmargin at screen 0.23



margin을 설정해주면 거기서부터 그래프의 축 영역이 시작된다.  물론 marginl, r, t, b 의 네 방향 모두 설정 가능하다.




3. ylabel, ytics까지 없앤 경우



이번에는 아예 ylabelytics까지 없애보았다. 


set lmargin at screen 0.23

set ytics format ""

unset ylabel


여전히 그래프의 폭은 같게 그려진다. 



한 마디로


- size: ticslabel까지 포함한 전체 크기. (set size ratio, set terminal size)

- margin: 그래프의 축 영역이 시작되는 곳. (lmargin, rmargin, tmargin, bmargin)


를 기억하고 있으면 된다.



4. 덧붙여: multiplot


이 방법을 multiplot에 적용해서 그래프를 멋지게 그린 경우를 소개한다. 아래 링크를 클릭해서 따라가 보길 바란다.


링크: http://www.gnuplotting.org/multiplot-placing-graphs-next-to-each-other/




2018년 6월 26일

과꾸로



gnuplot 관련글

---------------------------------------------------------------------------------------------------------------

[gnuplot] 변수가 3개 이상인 함수에 data fitting하기. set dummy

[gnuplot] palette를 이용해 line graph 색깔 정하기

[gnuplot] 복소함수 fitting 하기

[gnuplot] 반복문 쓰기: gnuplot 에서 for 를 사용해서 많은 그래프 한 번에 그리기

[gnuplot] png 에서 그리스문자 (Symbol) 쓰기: set encoding utf8

---------------------------------------------------------------------------------------------------------------



Comments