DataSet을 이용한 애니메이션 그래프

게시판 IDL Q&A DataSet을 이용한 애니메이션 그래프

태그: 

1 답변 글타래를 보이고 있습니다
  • 글쓴이
    • #5514 Reply
      yeonhee
      회원

      안녕하세요.
      제가 SetData를 이용해서 움직이는 그래프를 그리려고 했는데 잘 되지 않아 여쭤보고자 하는데요.

      일단 배열 BB는 3차원 배열: BB(21,4,100) 이고
      x가 BB(*,0,t), y가 BB(*,1,t)이고, x는 대략 1~610정도까지의 정수가, y에는 1~3까지의 정수가 랜덤하게 들어있습니다.
      SetData를 이용해서 t가 0부터 99까지의 100개의 그래프를 동영상으로 만들고 싶은데 어떻게 해야할지 몰라서 도움을 요청하고자 합니다.

      저는 일단
      frame=100
      win = WINDOW(DIMENSIONS=[1200, 300])
      x = BB(*,0,0)
      y = BB(*,1,0)
      p = PLOT(x, y, psym=2,symsize=5,YRANGE=[0, 4],/CURRENT)
      FOR t = 0, frame-1 DO BEGIN
      x = BB(*,0,t)
      y = BB(*,1,t)
      p.SetData, x, y
      ENDFOR
      이렇게 짰는데 win창에 아무것도 뜨지를 않네요.
      혹시 도움 주실 수 있으신가요?
      감사합니다.

    • #5515 Reply
      Sangwoo
      회원

      올리신 코드의 내용을 그대로 실행하면 그래픽창에 아무것도 뜨지 않을 뿐 아니라 에러가 발생합니다. 아마 대략 다음과 유사한 에러 메시지가 콘솔창에 출력되었을 것입니다.

      % PLOT: Unknown property: PSYM

      왜냐하면 psym, symsize는 지금 사용되고 있는 “PLOT 함수”에서는 허용되지 않는 속성들이기 때문입니다. 이것들은 DG 체계의 “PLOT 프로시저”에서 지원되는 키워드들입니다. 지금 사용하신 PLOT은 NG 체계의 PLOT 함수인데 여기서는 심볼의 형태 및 크기를 정하는 속성의 이름이 아예 다릅니다. 아마도 DG 체계의 PLOT 프로시저와 NG 체계의 PLOT 함수 사이의 문법적 차이를 다소 혼동하신 것으로 보입니다. 이와 관련해서는 IDL 도움말에서 PLOT 함수에 관한 내용을 참조하시거나 아래 링크의 내용을 참조하시면 도움이 될 것 같습니다.

      http://blog.daum.net/swrush/104

      어쨌든 NG 체계의 PLOT 함수에 맞도록 수정하려면, 위 내용에서 PLOT 함수가 사용된 라인을 다음과 같이 수정하는 것이 좋습니다. 심볼의 형태 및 크기는 원형 및 2로 가정하였습니다. 그리고 X축의 범위도 XRANGE 속성을 사용하여 고정시키는 것이 좋습니다. 그렇게 하지 않으면 그림을 그릴 때마다 X축 범위가 계속 변합니다.

      p = PLOT(x, y, SYMBOL=’circle’, SYM_SIZE=2, XRANGE=[0, 800], YRANGE=[0, 4], /CURRENT)

      어차피 NG(New Graphics) 체계에서의 작업이므로 그 특성에 맞는 그래픽 표출이 될 수 있도록 하는 것이 중요합니다.

1 답변 글타래를 보이고 있습니다
'DataSet을 이용한 애니메이션 그래프'에 답변달기
글쓴이 정보: