그래프 축값을 변경시키는 방법

게시판 IDL Q&A 그래프 축값을 변경시키는 방법

이 게시글은 5개 답변과 3명 참여가 있으며 마지막으로  Sangwoo에 의해 2 월, 1 주 전에 업데이트 됐습니다.

  • 글쓴이
  • #5317

    anomalocaris
    회원

    범위는 xrange로 바꿀 수 있다는것을 알겠는데 축값 자체를 바꿀 수 있나요?

    예를 들면

    grid = dblarr(201,3)

    grid[95:105,0] = 1025 이런식으로 설정했습니다.

    그리고 x = (dindgen(201)-100)*10 으로 설정하고

    plot, x, grid[*,0]으로 그렸는데

    그래프를 그려보면 x축값은 0~201까지로 나옵니다.

    이것을 x축 값을 -1000에서 1000, 간격은 10단위로 나타낼 수 있는 방법이 있나요?

  • #5318

    anomalocaris
    회원

    xrange를 사용하면 축의 범위자체가 그냥 바뀌는 거라서 제가 원하는 결과가 나오지 않는데

    축 값자체를 0은 -1000으로 200은 1000으로 바꾸는 식으로 하고 싶습니다.

  • #5319

    anomalocaris
    회원

    아 죄송합니다 그냥 plot에서는 x축 값이 변경 되는데 window창으로 구현한 방법에 대해서는 x축이 0~200으로 나타나는데 그 부분을 수정하고 싶습니다. 번거롭게 해드려서 죄송합니다.

  • #5320

    ChoiYoun
    회원

    질문이 명확하지 않아 정확한 답변이 어렵습니다.

    window창이라는 것이 크게 두가지로 해석될 수 있을 것 같습니다.

    1) New Graphics의 window 함수(ex. w = WINDOW())
    2) window 프로시저(ex. window, 0)

    해당 게시글에서 연상되는 내용은 window 프로시저이나, 최근하셨던 질문으로는 New Graphics를 도전 중이신 듯합니다. 그리고 이전 작성글에서 xrange가 변경될 만한 경우는 아래 구문이 있습니다.

    pl.SetData, y2

    이를 다음과 같이 변경하면 xrange를 수정할 수 있습니다.

    pl.SetData, x, y2

  • #5322

    anomalocaris
    회원

    답변 감사합니다.

  • #5325

    Sangwoo
    회원

    질문하신 내용의 코드들을 그대로 따오고 그림만 PLOT 함수로 표출해 본 바로는 X축의 범위가 -1000부터 +1000까지로 잘 나옵니다.

    grid = dblarr(201,3)
    grid[95:105,0] = 1025
    x = (dindgen(201)-100)*10
    p = PLOT(x, grid[*,0])

    그래서 이 결과에서 어떤 부분이 문제이며 얻고자 하시는 결과가 어떠해야 하는지 다시 한번 알려주시면 좋겠습니다. 그리고 참고로 말씀드리자면, DBLARR이나 DINDGEN을 사용하면 2배 정밀도 실수값들로 구성된 배열이 생성되는데 만약 일반 실수로도 작업에 지장이 없다면 FLTARR이나 FINDGEN을 사용하는 것이 더 좋을 수도 있습니다. 2배 정밀도 실수는 일반 실수에 비하여 메모리를 두 배 차지하기 때문에, 혹시라도 배열이 클 경우에는 불필요한 메모리 낭비가 발생할 수 있거든요. 그래서 정말로 필요하지 않을 경우라면 굳이 2배 정밀도 실수를 사용할 필요는 없습니다. 물론 필요할 경우에는 사용을 해야 하겠지요.

답변은 로그인 후 가능합니다.