New Graphics를 이용하는 예전의 포스트를 보셨으면 아시겠지만, New Graphics는 함수를 이용하여, plot등의 작업을 ID로 남겨서 그 ID를 이용하는 것으로 이미 작성된 이미지등을 바꿀 수 있었습니다. Plot같은 경우에도 처음에 모든 설정을 다 못했어도 title을 넣는다던지, Plot라인의 색을 바꾸는 등의 작업이 가능했지요. 이러한 연장선에서 New Graphics의 여러 함수들의 결과는 변수를 변화시켜서 하는 작업뿐만이 아니라, 가지고 있는 Method를 이용하여 더 많은 작업을 할 수 있습니다.
우선 사용할 수 있는 Method들은 help에서 Index검색을 통해 graphic method를 검색하시면 다양하게 나오게 됩니다. 저는 그 중에서 많이 쓸 것 같은 Method를 몇가지 소개하고자 합니다. 우선 SetData를 보시죠.
1 2 3 4 5 6 7 8 9 10 |
TEMP1=RANDOMU(SEED,12) * 100 TEMP2=RANDOMU(SEED,12) * 100 DAY=FINDGEN(12) * 30 + 15 p = PLOT(DAY, TEMP1, 'Db-1', $ TITLE = 'Temperature', $ XTITLE = 'Day of Year', $ YTITLE = 'Degrees Fahrenheit') p.SetData, DAY, TEMP2 |
Help에 있는 예제코드인데요. 이 코드를 따라서 해보면, SetData의 기능이 어떤 것인지 알게 됩니다. 바로 SetData의 뒤에 있는 배열이 새로운 Plot의 자료가 되는 것이지요. 즉 New Graphics에서는 값이 변화했을 때 Plot을 새로 그리지 않아도 반영을 할 수 있게 됩니다.
다음에 소개할 Method는 Erase입니다. Erase는 창을 지우는 Method인데요. 다음과 같이 이용이 가능합니다.
1 2 3 4 5 6 7 8 9 10 |
p1 = PLOT(/TEST) ; Retrieve the plot's window object w = p1.WINDOW ; Note that p1 will no longer be valid w.Erase ; Add a new plot to the same window p2 = PLOT(/TEST, /CURRENT) |
역시나 help의 예제코드입니다. p1을 지우고 p2를 새로 그리는 모습을 볼 수 있을 것입니다.
또 쉽게 사용할 수 있는 Method로 Save가 있습니다. 기본적으로 New Graphics를 이용할 경우 아래에 도구모음이 있기 때문에 그것을 이용해서 저장이 가능하지만, 다음과 같이 스크립트에서 저장이 가능합니다.
1 2 3 4 5 6 7 8 9 10 |
x = FINDGEN(41)/10 - 2 gauss = EXP(-x^2) p = BARPLOT(x, gauss, TITLE='Gaussian Distribution', $ XTITLE='$\it x$', YTITLE='$\it f(x)$', YRANGE=[0,1.1]) t = TEXT(0.75,0.85,'$\it f(x)=exp(-x^2)$', /DATA, FONT_SIZE=24) p.Save, "gaussian.png", BORDER=10, RESOLUTION=300, /TRANSPARENT |
help의 예제입니다만, 중요한 내용은 다 있습니다. BORDER는 외부에 남는 픽셀을 얼마나 할 것인지에 관한 속성값이며, resolution은 inch당 픽셀의 갯수를 정해주는 값입니다.(기본 값은 600입니다.)
위에서 보신 것 처럼 New Graphics가 가지는 Method들은 New Graphics를 이용하는데 있어서 유용한 것들이 많습니다. 이러한 내용을 잘 활용하시면 New Graphics를 통해서 더욱 편리하게 이미지를 이용하실 수 있을 것입니다.