좌표축 레이아웃 제어하기
위치 관련 속성과 함수
좌표축의 크기와 위치를 가져오고 설정하기 위한 몇 가지 속성과 함수가 있습니다. 다음 표에 요약되어 있습니다.
함수 또는 속성 | 설명 |
---|---|
제목, 레이블, 여백을 포함한 좌표축의 외부 경계를 쿼리하거나 변경하려면 이 속성을 사용합니다. 외부 경계를 변경하려면 이 속성을 | |
| 일반적으로 플롯 상자로 경계가 지정되는 플로팅 영역을 쿼리하거나 변경하려면 이 속성을 사용합니다. 이 영역은 제목과 레이블, 제목과 레이블 주변의 여백을 제외합니다. 플로팅 영역의 크기를 변경하려면 이 속성을 |
R2022b 이상 | 일반적으로 플롯 상자로 경계가 지정되는 플로팅 영역을 쿼리하려면 이 항수를 사용합니다. 종횡비 제약이 있는 좌표축(예: 정사각 좌표축, 극좌표 좌표축 또는 이미지가 포함된 좌표축)에 대해서는 대체로 이 함수가 |
| 플롯 상자를 둘러싸는 제목, 눈금 레이블, 축 레이블의 여백을 쿼리하려면 이 속성을 사용합니다. 축 레이블과 제목을 추가하면 MATLAB®이 텍스트에 맞게 이 속성을 업데이트합니다. |
R2020a 이상 | 제목 또는 레이블을 추가할 때 (좌표축 내부의) 플로팅 영역 또는 좌표축의 외부 경계를 유지하는지 여부를 쿼리하거나 제어하려면 이 속성을 사용합니다. 좌표축의 어느 특성을 유지할지 변경하려면 이 속성을 |
Units 속성 | 좌표축 위치 값의 단위를 쿼리하거나 변경하려면 이 속성을 사용합니다. 자동 좌표축 크기 조정을 사용하려면 이 값이 |
| 계산을 하거나 특정 속성을 설정하지 않고도 좌표축 제한이나 종횡비를 조정하려면 이 함수를 사용합니다. 예를 들면 다음과 같습니다.
|
위치와 여백 경계
이 Figure에서는 OuterPosition
값(빨간색), Position
값(파란색), TightInset
으로 확장된 Position
값(자홍색)으로 정의된 좌표축 영역의 2차원 보기를 보여줍니다.
이 Figure에서는 OuterPosition
값(빨간색), Position
값(파란색), TightInset
으로 확장된 Position
값(자홍색)으로 정의된 좌표축 영역의 3차원 보기를 보여줍니다.
정사각형의 위치 또는 종횡비 제약
R2022b 이상
예를 들어 이미지를 플로팅할 때 좌표축에 종횡비 제약이 있는 경우 Position
속성과 tightPosition
함수는 서로 다른 결과를 반환합니다. 만들려는 표시 유형에 따라 두 방법 중 하나를 사용하십시오.
예를 들어 이미지 하나를 표시합니다. axis
함수를 사용하여 이미지의 종횡비를 유지합니다.
figure C = imread("ngc6543a.jpg"); ax = axes; image(C) axis image
tightPosition
함수를 호출하여 위치 벡터를 가져옵니다. 벡터를 사용하여, 현재 좌표축에 표시된 이미지를 둘러싸는 빨간색 사각형을 그립니다.
tpos = tightPosition(ax); annotation("rectangle",tpos,Color="red",LineWidth=2)
좌표축의 Position
속성을 쿼리하여 또 다른 위치 벡터를 가져옵니다. 벡터를 사용하여, 크기는 비슷하지만 디폴트 종횡비를 갖는 이미지의 플로팅 영역을 정의하는 파란색 사각형을 그립니다. 이 벡터의 값은 서로 다른 종횡비를 갖는 여러 이미지를 연속으로 표시할 경우 전체 이미지 영역을 쿼리할 때 유용할 수 있습니다.
pos = ax.Position; annotation("rectangle",pos,Color="blue",LineWidth=2)
자동 크기 조정 동작 제어하기
경우에 따라 Axes
객체가 자동으로 크기를 조정하도록 트리거될 수 있습니다. 예를 들어, 대화형 방식으로 Figure의 크기를 조정하거나 제목이나 축 레이블을 추가하면 자동 크기 조정이 활성화됩니다. 때때로 새로운 좌표축 크기가 Position
값과 OuterPosition
값을 모두 충족하지 못할 수 있으므로 PositionConstraint
속성은 유지할 값을 표시합니다.
PositionConstraint
속성을 다음 값 중 하나로 지정합니다.
"outerposition"
—OuterPosition
값을 유지합니다. 좌표축이나 다른 주변 텍스트가 특정 외부 경계를 넘어서 확장되지 않도록 하려면 이 옵션을 사용하십시오. MATLAB은 내용이 외부 경계 내에 피팅되도록 좌표축 내부 영역(플롯이 표시되는 영역)의 크기를 조정합니다."innerposition"
—InnerPosition
값을 유지합니다. 좌표축의 내부 영역이 Figure 내에서 특정 크기를 유지하도록 하려면 이 옵션을 사용하십시오. 이 옵션을 사용하면 경우에 따라 텍스트가 Figure를 벗어날 수 있습니다.
R2020a 이전: ActivePositionProperty
와 값 "outerposition"
또는 "position"
을 사용합니다.
일반적으로 PositionConstraint
속성을 "outerposition"
으로 설정하는 것이 바람직합니다. 좌표축 제목이나 레이블이 지나치게 길 경우 좌표축 내부 영역이 읽기 어려울 정도로 축소될 수 있습니다. 이 경우 주변 텍스트가 Figure를 벗어나더라도 내부 좌표축을 특정 크기로 유지하는 것이 바람직할 수 있습니다.
예를 들어, 좌표축이 2개인 Figure를 만들고 각 좌표축 위치의 너비와 높이를 똑같이 지정합니다. PositionConstraint
속성을 상부 좌표축에 대해서는 "outerposition"
으로 설정하고 하부 좌표축에 대해서는 "innerposition"
으로 설정합니다. 상부 좌표축에서는 내부 영역이 텍스트에 맞게 축소되지만, 텍스트가 Figure 밖으로 벗어나지 않습니다. 하부 좌표축에서는 내부 영역의 크기가 유지되지만, 일부 텍스트가 잘립니다.
figure; ax1 = axes("Position",[0.13 0.58 0.77 0.34]); ax1.PositionConstraint = "outerposition"; plot(ax1,1:10) title(ax1,"Preserve OuterPosition") yticklabels(ax1,["My incredibly descriptive, excessively wordy, and overly long label",... "label 2","label 3"]) ax2 = axes("Position",[0.13 0.11 0.77 0.34]); ax2.PositionConstraint = "innerposition"; plot(ax2,1:10) title(ax2,"Preserve Position") yticklabels(ax2,["My incredibly descriptive, excessively wordy, and overly long label",... "label 2","label 3"])
늘여서 채우기(Stretch-To-Fill) 동작
기본적으로, MATLAB은 좌표축을 늘여서 사용 가능한 공간을 채웁니다. “늘여서 채우기” 동작을 사용하면 왜곡이 어느 정도 발생할 수 있습니다. 따라서 좌표축이 DataAspectRatio
속성, PlotBoxAspectRatio
속성, CameraViewAngle
속성에 저장된 데이터 종횡비 값, 플롯 상자 종횡비 값, 카메라 시야각 값과 정확하게 일치하지 않을 수 있습니다. Axes
객체의 DataAspectRatioMode
, PlotBoxAspectRatioMode
, CameraViewAngleMode
속성이 "auto"
로 설정되면 “늘여서 채우기” 동작이 활성화됩니다.
데이터 종횡비, 플롯 상자 종횡비 또는 카메라 시야각을 지정할 경우, "늘여서 채우기" 동작은 비활성화됩니다. "늘여서 채우기" 동작이 비활성화된 경우 MATLAB에서는 좌표축을 사용 가능한 공간 내에서 가능한 한 크게 만들고 왜곡이 없도록 속성값을 엄격히 준수합니다.
예를 들어, 다음 Figure에서는 동일한 플롯을 "늘여서 채우기" 동작이 활성화된 상태에서 표시한 모습과 비활성화된 상태에서 표시한 모습을 보여줍니다. 두 버전 모두에서 데이터 종횡비 값, 플롯 상자 종횡비 값, 카메라 시야각 값은 동일합니다. 그러나 왼쪽 플롯에서는 늘이기 동작으로 인해 어느 정도 왜곡이 발생합니다.
늘여서 채우기 활성화(일부 왜곡 발생) | 늘여서 채우기 비활성화(왜곡 없음) |
---|---|
|
|
참고 항목
함수
axes
|tiledlayout
|title
|daspect
|pbaspect