과꾸로

[gnuplot] 자료 첫 (행)가로줄을 범례로 쓰기 + 선택한 (열)세로줄 범위만 그리기 본문

연구자료

[gnuplot] 자료 첫 (행)가로줄을 범례로 쓰기 + 선택한 (열)세로줄 범위만 그리기

(gguro) 2015. 6. 2. 14:01



다음과 같은 자료가 있다고 생각해보자.



 

 가

 나 

 1

 1.23

 2.11

 2

 1.73

 1.94



가장 왼쪽에 있는 (열)세로줄을 가로축으로 하고, 2번, 3번 세로줄의 값을 세로축으로 하면서 자료의 제목인 '가'와 '나'를 범례로 표기하고 싶을 때는 어떻게 하면 좋을까. 그래프를 그려주는 다양한 프로그램이 있지만 그 중에서 gnuplot을 이용해서 어떻게 하는 지 알아보자.



요전에 광학, 나노과학 등의 분야 학술지의 영향력 지수를 그래프로 보인 글을 썼었다 (이어가기). 그 때 쓴 gnuplot 코드는 다음과 같다.


#!/usr/bin/gnuplot

# Journal impace factor

# png


reset



set terminal pngcairo size 1000,1300 enhanced font 'Verdana,22'

set pointsize 3

set xtics 2009 1

set xrange[2008.5:2013.5]

set key reverse Left


set xlabel "Year"

set ylabel "Impact Factor"


# IF 1

set output 'if1.png'

set yrange[:53]


plot for [ii=2:7] 'all.dat' u 1:(column(ii)) w lp lw 5 title columnhead(ii)



# IF 2

set output 'if2.png'

set yrange[:27]


plot for [ii=7:12] 'all.dat' u 1:(column(ii)) w lp lw 5 title columnhead(ii)


그 중 가장 중요한 부분은 바로 이 부분인데,

plot for [ii=2:7] 'all.dat' u 1:(column(ii)) w lp lw 5 title columnhead(ii)

반복문을 사용해서 세로줄 2~7까지만 선택해서 그리고, 그에 맞게 각각 범례를 붙여주는 코드이다. 

all.dat


위에 실제 사용한 (all.dat) 자료도 올려두었으니 그려보고 싶은 사람은 직접 그려볼 수 있다.











그렇게 하면 위의 두 개의 그래프를 얻을 수 있다.


알아두면 많은 경우에 활용할 수 있을 듯하다.


Comments