[MATLAB] plot 그릴 때 마커 간격 설정하기 (230309 수정)

2022. 10. 9. 14:13·프로그래밍 Programming/매트랩 MATLAB

 

매트랩과 matplotlib에서 둘 다 그래프를 그려보았고 사실 matplotlib이 MATLAB을 무료로 사용하고자 하는 목적에서 나왔기 때문에 기능이 비슷한 점이 많다.

 

그럼에도 불구하고 내가 발견한 차이점이 하나 있는데, 그것은 매트랩에서는 plot의 마커 간격을 설정할 수 없다는 점이다.

 

matplotlib에서는 다음과 같이 코드를 작성하면 5개 간격으로 marker를 그려준다.

plot(x,y,marker='o',markevery=5)

 

그런데 MATLAB에서는 아무리 검색해도 이러한 기능이 없었다.

그래서 임시방편으로 만든 방법을 여기에 기록하고자 한다.

 

 

MATLAB에서는 plot을 그릴 때 마음과 같이 할 수 있다.

x = 0:pi/16:2*pi ;
y = sin(x) ;

figure ;
plot(x(1:2:end), y(1:2:end)) ;

 

위 코드를 보면 x(1:2:end)라고 되어있는데 이는

첫번째 줄인 x = 0:pi/16:2*pi 와 동일한 것이다.

 

x = 0:pi/16:2*pi

이 코드는 0에서 $2\pi$까지 $\pi/16$ 간격으로 나눈 array를 return하려는 것이다.

 

 

 

만약 전체 plot을 그리는 코드를 작성하면 다음과 같다. 이 코드는 동그라미 마커를 사용하면서 solid line까지 같이 plot한다.

figure ;
plot( x, y, '-o', 'color', 'b' ) ;

 

이렇게 간격이 촘촘한 것을 보기 싫다면 앞서 말한 것과 같이 간격을 조정하여 두 plot을 같이 그리는 것이다.

 

figure ;
plot( x, y, 'b' ) ;
hold on ; plot( x(1:3:end), y(1:3:end), 'o', 'color', 'b' ) ;

 

 

여기서 plot 색상을 같게 해주지 않고 hold on을 하면 다른 plot으로 인식하기 때문에 색상을 다르게 배치한다.

 

따라서 색상을 따로 지정해주어야 한다.

 

다소 불편해보일 수 있는 방식이지만 MATLAB에서 마커 간격을 조절할 수 있게 해주기 전까지는 이 방법이 나아보인다.

검색해본 결과 이런 기능을 위해 코드를 만든 사람도 있는데 이렇게 마커 간격 조절을 함수로 만들어버리면 그 함수를 만든 사람이 아닌 이상에야 자신이 자유자재로 plot을 그리는 데에 방해가 된다.

 


230309 수정

 

예전에는 marker 간격 설정 기능이 없었던 것으로 기억하는데 최근에 다시 검색하다가 알게 되어서 작성한다.

 

이제는

 

plot(x,y,"-o","MarkerIndices",[1 5 10])
plot(x,y,"-x","MarkerIndices",1:3:length(y))
plot(x,y,"Marker","square","MarkerIndices",5)

"MarkerIndices"라는 옵션이 추가되어서 마커 간격을 array로 보내주거나 숫자만 넣으면 그 숫자 간격으로 마커를 그려준다.

저작자표시 비영리 변경금지 (새창열림)

'프로그래밍 Programming > 매트랩 MATLAB' 카테고리의 다른 글

[MATLAB] plot 함수에서 투명도(transparency) 조절하기  (0) 2022.11.05
[MATLAB] 여러 개의 그래프 색상 중복 안되게 지정하기  (0) 2022.10.25
[MATLAB] classic plot의 color 순서로 설정하기  (0) 2022.09.26
[MATLAB] 시작할 때 자동 실행되는 코드 (startup.m)  (0) 2022.09.05
[MATLAB] Legend를 사용할 때 유용한 팁 (1) 일부 legend만 표기  (0) 2022.06.28
'프로그래밍 Programming/매트랩 MATLAB' 카테고리의 다른 글
  • [MATLAB] plot 함수에서 투명도(transparency) 조절하기
  • [MATLAB] 여러 개의 그래프 색상 중복 안되게 지정하기
  • [MATLAB] classic plot의 color 순서로 설정하기
  • [MATLAB] 시작할 때 자동 실행되는 코드 (startup.m)
보통의공대생
보통의공대생
수학,프로그래밍,기계항공우주 등 공부하는 기록들을 남깁니다.
  • 보통의공대생
    뛰는 놈 위에 나는 공대생
    보통의공대생
  • 전체
    오늘
    어제
    • 분류 전체보기 (460)
      • 공지 (1)
      • 영어 공부 English Study (40)
        • 텝스 TEPS (7)
        • 글 Article (21)
        • 영상 Video (10)
      • 연구 Research (99)
        • 최적화 Optimization (3)
        • 데이터과학 Data Science (7)
        • 인공지능 Artificial Intelligent (40)
        • 제어 Control (45)
      • 프로그래밍 Programming (103)
        • 매트랩 MATLAB (25)
        • 파이썬 Python (33)
        • 줄리아 Julia (2)
        • C++ (3)
        • 리눅스 우분투 Ubuntu (6)
      • 항공우주 Aeronautical engineeri.. (21)
        • 항법 Navigation (0)
        • 유도 Guidance (0)
      • 기계공학 Mechanical engineering (13)
        • 열역학 Thermodynamics (0)
        • 고체역학 Statics & Solid mechan.. (10)
        • 동역학 Dynamics (1)
        • 유체역학 Fluid Dynamics (0)
      • 수학 Mathematics (34)
        • 선형대수학 Linear Algebra (18)
        • 미분방정식 Differential Equation (3)
        • 확률및통계 Probability & Sta.. (2)
        • 미적분학 Calculus (1)
        • 복소해석학 Complex Analysis (5)
        • 실해석학 Real Analysis (0)
      • 수치해석 Numerical Analysis (21)
      • 확률 및 랜덤프로세스 Random process (2)
      • 추론 & 추정 이론 Estimation (3)
      • 기타 (26)
        • 설계 프로젝트 System Design (8)
        • 논문작성 Writing (55)
        • 세미나 Seminar (2)
        • 생산성 Productivity (3)
      • 유학 생활 Daily (7)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Numerical Analysis
    Dear abby
    JAX
    인공지능
    Statics
    논문작성
    teps
    MATLAB
    고체역학
    ChatGPT
    WOX
    생산성
    Julia
    Linear algebra
    서버
    matplotlib
    수치해석
    우분투
    텝스공부
    Python
    obsidian
    텝스
    LaTeX
    pytorch
    딥러닝
    에러기록
    IEEE
    Zotero
    옵시디언
    논문작성법
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
보통의공대생
[MATLAB] plot 그릴 때 마커 간격 설정하기 (230309 수정)
상단으로

티스토리툴바