- This topic has 3개 답변, 2명 참여, and was last updated 5 years, 11 months 전에 by Sangwoo.
-
글쓴이글
-
-
sjlee회원
제목과 같이 어떻게 설명을 해야할지..^^;;;
하고 싶은 것은 2차원 영상의 값을 plot 하고 싶은데,
5*10의 배열이라고 했을때, plot의 x축(각 행)에 5개의 열방향 데이터 값을 한꺼번에 표출하고 싶습니다.가능한 방법이 있을까요?
-
Sangwoo회원
2차원 영상에 대하여 세로 방향의 프로파일(Profile)을 플롯으로 표출해야 하는 경우일 것 같습니다. 그러면 배열에 대하여 인덱싱을 그런 방식으로 해주면 됩니다. 5×10 형태인 원본 2차원 배열을 data라고 할 때, 맨 왼쪽에 위치한 첫번째 프로파일을 추출하여 표출하는 방식은 대략 다음과 같습니다.
line = data[0, *]
p = PLOT(line)물론 가로 방향으로 몇번째 위치를 기준으로 할 것이냐에 따라 0이란 값을 다른 인덱스 값으로 대체하면 됩니다.
-
sjlee회원
제가 하고자 하는 것은, 단순 프로파일이라기 보다…
data=indgen(5,5)이라고 할때,
각 라인의 5개 값들이 모두 plot 되는 그림입니다.
plot의 x축 기준으로 설명하자면…
x(0)는 0~4의 값 5개가 모두 찍히고
x(1)는 5~9의 값 5개가 모두 찍히고..
일반적이지는 않은 좀 이색적인 scatterplot이긴 합니다 . -
Sangwoo회원
그런 경우라면 몇가지 방법이 있을 것 같은데, 제가 원래 언급했던 방법을 모든 X좌표들에 대하여 반복적으로 수행하는 것입니다. 즉 원본 2차원 데이터가 5X10의 형태라면 다음과 같습니다.
FOR j=0, 4
line = data[j, *]
IF j EQ 0 THEN p = PLOT(line, LINESTYLE=6, SYMBOL=’circle’) ELSE $
p = PLOT(line, LINESTYLE=6, SYMBOL=’circle’, /OVERPLOT)
ENDFOR여기서 IF문이 사용된 이유는, 처음 플롯을 그릴 때에는 플롯을 생성해야 하는 반면 그 이후에는 중첩만 해야 하기 때문입니다. 그리고 플롯을 그릴 때 선을 잇지않고 심볼만 표시하기 위하여 몇몇 키워드들의 추가 사용은 필요합니다. 어쨌든 위 방법은 세로 방향 플롯을 반복적으로 표출하는 경우이고, 만약 가로 방향 플롯을 반복적으로 표출할 경우라면 다음과 같을 것입니다.
FOR j=0, 9
line = data[*, j]
IF j EQ 0 THEN p = PLOT(line, LINESTYLE=6, SYMBOL=’circle’) ELSE $
p = PLOT(line, LINESTYLE=6, SYMBOL=’circle’, /OVERPLOT)
ENDFOR그리고 이러한 방법 외에도 SCATTERPLOT 함수를 사용하는 다른 방법도 있는데, 그 방법에 대해서는 제 블로그에 올려놓은 내용이 있으므로 이를 참조하시기 바랍니다.
http://blog.daum.net/swrush/460
- 이 답변은 Sangwoo에 의해 5 years, 11 months 전에 수정됐습니다.
-
-
글쓴이글