POLARPLOT 함수는 NG 체계에서 극좌표(Polar Coordinate) 기반의 플롯을 표출하는 기능을 담당합니다. 오늘은 이 함수에 관한 개요 및 관련 예제들을 소개해보도록 하겠습니다. 극좌표 기반이기 때문에 입력 데이터는 반경(Radius)과 각도(Angles) 값들로 구성된 배열들로 구성되어야 합니다. 이러한 형태의 예제 데이터를 먼저 다음과 같이 r, theta라는 이름의 배열들로 생성해봅시다.
r = MAKE_ARRAY(31, VALUE=8)
theta = FINDGEN(31)*12*!DTOR
여기서는 r, theta 모두 31개의 값들로 구성된 배열이 됩니다. 먼저 r은 8이라는 동일한 반경 값들 31개로 구성되었습니다. 그리고 theta는 0부터 360까지 12의 간격으로 나눠진 31개의 각도 값들로 구성되었습니다. 다만 theta의 경우는 도(Degree) 단위를 라디안(Radian) 단위로 변환해주는 !DTOR이라는 시스템 값을 곱해주었는데, 그 이유는 POLARPLOT 함수의 인수로 투입되는 각도 값들은 라디안 단위가 되어야 하기 때문입니다. 이와 같이 r, theta 배열들을 생성하였으므로 바로 POLARPLOT 함수를 사용하여 그림을 표출해봅시다. 그 과정은 다음과 같습니다.
win = WINDOW(DIMENSIONS=[600, 600], /NO_TOOLBAR)
p = POLARPLOT(r, theta, COLOR='tomato', $
SYMBOL='circle', /SYM_FILLED, $
XRANGE=[-10, 10], YRANGE=[-10, 10], $
CLIP=0, /CURRENT)
이와 같이 POLARPLOT 함수에 대해서는 필수 인수들인 r, theta를 투입하고 나머지 관련 속성들을 적절하게 설정하였습니다. 이 과정에 의하여 표출된 그림은 다음과 같습니다.
앞서 예제 데이터를 생성할 때 r의 경우 일괄적으로 8이란 값을 갖도록 했기 때문에 이와 같이 모든 포인트들에 걸쳐 반경이 일정한 원형이 되었습니다. 물론 반경의 값들이 서서히 변하도록 해볼 수도 있습니다. 다음과 같이 r만 변경해서 다시 실행해봅시다.
r = FINDGEN(31)/3
이렇게 하면 반경의 값이 0부터 10까지 서서히 증가하게 됩니다. 이렇게 하여 표출된 그림은 다음과 같습니다.
그리고 표출된 그림들을 잘 보면 X, Y 축이 다른 종류의 플롯들처럼 박스 형태가 아니라 가운데 원점을 중심으로 한 형태로 표출된 것을 볼 수 있습니다. 즉 POLARPLOT 함수로 표출되는 그림에서는 이러한 축(Axis)의 형태가 디폴트입니다. 물론 다른 형태로 표출도 가능한데 이를 위해서는 AXIS_STYLE 키워드를 추가로 사용하면 됩니다. 앞서 POLARPLOT 함수가 사용되었던 내용에서 다음과 같이 AXIS_STYLE 키워드를 추가해봅시다.
p = POLARPLOT(r, theta, AXIS_STYLE=2, COLOR='tomato', $
SYMBOL='circle', /SYM_FILLED, $
XRANGE=[-10, 10], YRANGE=[-10, 10], $
CLIP=0, /CURRENT)
이와 같이 AXIS_STYLE 키워드의 값을 2로 설정하면 X, Y 축이 박스 형태가 됩니다. 이러한 변경 사항이 적용된 표출 결과는 다음 그림과 같습니다.
참고로 맨 처음에 표출했던 것과 같은 축의 디폴트 형태는 AXIS_STYLE 키워드 값이 3인 경우에 해당됩니다. POLARPLOT 함수에는 그 외에도 여러가지 부가 기능들이 있지만 기본 틀 자체는 플롯의 범주에 속하기 때문에 사용 방식은 다른 플롯 계열 함수들(PLOT 등)과 전반적으로 유사합니다. 참고로 심볼 관련 속성들 위주로 좀 다른 방식으로 표출해보면 그 과정은 다음과 같습니다.
p = POLARPLOT(r, theta, AXIS_STYLE=1, $
SYM_COLOR='red', SYM_FILL_COLOR='cyan', $
SYMBOL='square', /SYM_FILLED, SYM_SIZE=2, $
SYM_THICK=2, LINESTYLE=6, $
XRANGE=[-10, 10], YRANGE=[-10, 10], $
CLIP=0, /CURRENT)
이번에도 PLOARPLOT 함수가 사용되는 부분만 이와 같이 변경해본 것입니다. 변경된 내용을 적용하여 다시 실행해보면 그 결과는 다음 그림과 같습니다.
이와 같은 표출도 가능하다는 것을 참조해두시면 좋을 것 같습니다.
'IDL > New Graphics' 카테고리의 다른 글
컬러테이블만 표출하는 방법 (0) | 2022.04.19 |
---|---|
그림에 한글 표시하기 (NG 체계) (0) | 2022.04.12 |
NG 체계에서 그림 저장시 크기 관련 이슈 (0) | 2022.02.22 |
3차원 공간상에서 문자 표시 팁 (0) | 2022.02.15 |
3차원 막대그래프(?)의 표출 (0) | 2022.02.08 |