SMALL

IDL/New Graphics 170

궤적 상의 입자 운동 구현 및 애니메이션 (3D)

2차원 공간에 존재하는 궤적이 있고 그 위에서 움직이는 입자가 있는 상황을 가정하여 이를 그래픽적으로 도식화하고 그 움직임을 담은 애니메이션 파일을 만들어보는 예제를 소개하는 게시물을 얼마전에 올린 바 있습니다. 이번에는 2차원 대신 3차원 공간에 대한 예제를 살펴보고자 합니다. 즉 3차원 공간에 존재하는 궤적이 있고 그 위에서 움직이는 입자가 있는 상황을 가정하여 이를 그래픽적으로 도식화하고 그 움직임을 담은 애니메이션 파일을 만들어보는 예제를 소개해보기로 합니다. 사실 전반적인 내용의 흐름 자체는 2차원 예제와 크게 다르지는 않습니다. 다만 모든 것이 3차원이 구현된다는 부분만 다를 뿐입니다. 그러면 3차원 공간상에 존재하는 궤적을 구성하는 점들의 좌표 데이터를 생성하는 작업부터 진행해야 하는데요. ..

IDL/New Graphics 2026.03.31

궤적 상의 입자 운동 구현 및 애니메이션

오늘은 2차원 공간에 존재하는 궤적이 있고 그 위에서 움직이는 입자가 있는 상황을 가정하여 이를 그래픽적으로 도식화하고 그 움직임을 담은 애니메이션 파일을 만들어보는 예제를 소개하고자 합니다. 먼저 궤적을 구성하는 점들의 좌표 데이터를 생성하는 작업부터 진행합니다. 그 과정은 다음과 같이 정의해봅니다. n = 400 t = [0:2*!pi:2*!pi/n] r = 0.5+COS(t) x = r*COS(t) y = r*SIN(t) HELP, x, y 여기서는 총 401개의 X축 및 Y축 좌표값들로 구성된 배열 x 및 y를 정의하였습니다. 이러한 점들로 구성된 궤적을 그림으로 표출하기 위하여 다음과 같은 과정을 추가로 실행합니다. sx = 600 sy = 600 win = WINDOW(DIMENSIONS=[s..

IDL/New Graphics 2026.03.13

데이터 포인트들을 다양한 색상으로 표출하기 [3]

2차원 공간상에 흩어져있는 다수의 데이터 포인트들 다양한 색상으로 표출하는 방법에 관한 게시물들(링크 1, 링크 2)을 올렸던 적이 있습니다. 그래서 이러한 방식의 구현을 위하여 SCATTERPLOT 및 BUBBLEPLOT 함수를 사용하는 방법 및 예제들을 다양하게 소개한 바 있는데요. 오늘은 이러한 연장선상에 있는 또 다른 예제들을 소개해보고자 합니다. 먼저 예제 데이터를 생성하는 과정부터 시작하면 다음과 같습니다. n = 100 x1 = RANDOMU(-1, n)*100 y1 = RANDOMU(-2, n)*100 x2 = RANDOMU(-3, n)*100 y2 = RANDOMU(-4, n)*100 x3 = RANDOMU(-5, n)*100 y3 = RANDOMU(-6, n)*100 여기서는 2차원 공..

IDL/New Graphics 2026.03.06

막대 차트(Bar Chart) 표출하기

막대 차트(Bar Chart)는 막대 모양의 그래프를 표출하면서 막대 내에서 값에 따라 마디마디가 구분되어 보이도록 하는 표출 방식을 의미합니다. 이해를 돕기 위하여 예제 그림만 먼저 본다면 다음과 같습니다. 이 그림에서는 어떤 설문 조사를 6개의 집단들을 대상으로 실시하고 각 카테고리별 응답 비율을 막대 차트의 형태로 표시하고 있습니다. 오늘은 이러한 막대 차트(Bar Chart) 그림을 IDL에서 표출하는 방법을 소개해보고자 합니다. 위의 그림은 당연히 IDL로 표출한 것이며 그 과정을 지금부터 살펴보겠습니다. 먼저 예제 데이터부터 정의해봅시다. 그 과정은 다음과 같습니다. cats = ['very bad', 'bad', 'not bad', 'good', 'very good'] colors = ['..

IDL/New Graphics 2025.12.09

BOXPLOT 함수 소개

오늘은 NG 체계에서 지원되는 그래픽 함수들 중에서 BOXPLOT 함수에 관하여 소개해보기로 하겠습니다. BOXPLOT 함수는 NG 체계의 그래픽 함수들 중에서도 비교적 나중에 도입된 경우에 속하며 IDL 8.2.2 버전에서부터 지원되기 시작하였습니다. IDL에서 이 함수에 대한 설명을 보면 box and whisker plot(상자 수염 그림) 형태의 표출 기능이라고 언급되어 있습니다. 이것은 통계 분야에서 흔히 사용되는 표출 형태로서 최소값(Minimum), 1사분위값(25% Quartile), 2사분위값(50% Quartile or Median), 3사분위값(75% Quartile), 최대값(Maximum) 등의 5종의 통계값들을 박스 및 에러바(box and error bar)의 형태로 나타내는 ..

IDL/New Graphics 2025.12.03

2종의 막대 그래프를 서로 붙여서 표출하기

오늘은 IDL에서 BARPLOT 함수를 이용하여 막대 그래프를 표출하는데 있어서 서로 다른 두 종류의 데이터에 대한 막대 그래프 그림을 서로 붙여서 표출하는 예제를 소개해보고자 합니다. 먼저 이를 위하여 필요한 두 종류의 예제 데이터를 다음과 같이 생성해봅시다. n = 10000 data1 = RANDOMN(-1, n)*10 data2 = RANDOMN(-2, n)*20+5 여기서 생성된 data1 및 data2는 모두 정규 분포를 하는 10000개의 값들로 구성된 1차원 배열인데, data1은 평균 및 표준편차가 각각 0 및 10이고 data2는 평균 및 표준편차가 각각 5 및 20인 데이터입니다. 그리고 각 데이터에 대한 분포 자료를 얻기 위하여 HISTOGRAM 함수를 다음과 같이 사용합니다. bs..

IDL/New Graphics 2025.11.27

바코드 형태의 이미지의 표출 및 응용 [2]

IDL에서 바코드(Barcode)의 형태를 띈 이미지를 구현하고 표출하는 방법을 지난 회차 게시물에서 소개한 바 있습니다. 오늘은 이러한 기법을 응용하는 예제를 살펴보기로 합니다. 먼저 다음과 같이 1차원적인 패턴의 데이터를 가정하고 기본적인 표출까지 진행해봅시다. x = FINDGEN(241) y = 1.7*SIN(x*!PI/25.0)*EXP(-0.01*x)win = WINDOW(DIMENSIONS=[600, 500], /NO_TOOLBAR) p = PLOT(x, y, COLOR='dark cyan', THICK=2, $ XRANGE=[0, 240], XTICKINTERVAL=60, $ FONT_SIZE=11, MARGIN=[0.1, 0.1, 0.1, 0.2], /CURRENT) 여기서는 감쇄형..

IDL/New Graphics 2025.11.17

바코드 형태의 이미지의 표출 및 응용 [1]

오늘은 IDL에서 바코드(Barcode)의 형태를 띈 이미지를 표출하는 방법을 소개해보고자 합니다. 즉 마치 바코드처럼 세로 방향의 검은 선들이 흰 바탕에 표시되는 방식을 뜻합니다. 다만 오늘 해보고자 하는 것은 바코드의 모습을 띈 이미지를 표출하는 것일 뿐이고 바코드의 생성 메커니즘을 적용하여 바코드 자체를 생성하는 것은 아님을 미리 밝혀둡니다. 그러면 먼저 바코드 형태의 데이터를 다음과 같이 0과 1의 값들로 구성된 1차원 배열로 가정하여 임의로 정의해봅시다. code = [1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, $ 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1..

IDL/New Graphics 2025.11.11

색상을 채운 플롯(Filled Plot)의 표출 [3]

IDL에서 플롯의 선(Line) 사이를 색상으로 채워서 표출하는 기능을 담당하는 FILLPLOT 함수는 IDL 8.7.2 버전부터 지원되기 시작하였으며 이 함수의 사용법 및 예제는 이미 관련 게시물들(링크1, 링크2)을 통하여 소개한 바 있습니다. 오늘은 FILLPLOT 함수를 사용하는 또 다른 방식에 대한 예제들을 소개해보고자 합니다. 일단 FILLPLOT 함수의 기본적인 사용법은 앞서 언급된 링크들을 참조하는 것으로 하고 시작해봅니다. 먼저 예제로 사용할 데이터를 다음과 같이 생성합니다. x = [0:2:0.01] y1 = FLTARR(N_ELEMENTS(x)) y2 = 1.2*SIN(4*!pi*x) 여기서는 0부터 2까지 0.01의 간격을 갖는 201개의 실수형 값들로 구성된 x를 생성하고 이를 바..

IDL/New Graphics 2025.11.05

이미지(Image)를 격자(Grid)와 함께 표시하기

2차원 데이터에 대한 이미지(Image)를 표출하는데 있어서 격자(Grid)를 함께 표시하는 방식은 이미지를 구성하는 각각의 화소(Pixel)를 사각형으로 둘러싸서 다른 화소들과 구분하여 보고자 할 때 유용합니다. 이러한 표출은 이미지 배열의 크기가 큰 경우보다는 작은 경우에 더 적합합니다. 물론 통상적으로는 이미지의 표출에 있어서 격자를 함께 표시하지 않는 것이 기본이긴 하지만, 필요에 따라서는 개별 화소를 구분하여 볼 목적으로 격자들을 함께 표시하고 싶을 수도 있습니다. IDL에서도 이러한 방식의 표출은 가능합니다. 그래서 그 방법을 소개해보고자 합니다. 먼저 가상의 예제 데이터를 다음과 같이 생성해봅시다. 여기서는 5x5의 구조를 갖는 2차원 배열 data를 생성하면서 화소값들은 난수로 부여되도록 ..

IDL/New Graphics 2025.10.28
728x90