다른 용도에 사용하기 위해 Figure 내보내기
문서 및 기타 용도에 사용하기 위해 Figure와 플롯을 내보내려면 exportgraphics
함수를 사용하여 콘텐츠를 파일에 저장하거나 copygraphics
함수를 사용하여 콘텐츠를 클립보드에 복사하십시오. 두 함수 모두 용도에 따라 적합한 크기, 해상도 및 종횡비로 Figure와 플롯을 캡처할 수 있습니다. 채우기 여백과 배경색을 지정하고 좌표축 눈금 배치를 제어할 수도 있습니다. 이 항목의 예제에서는 exportgraphics
함수를 사용하지만 copygraphics
함수를 사용할 때도 동일한 개념과 인수를 적용할 수 있습니다.
exportgraphics
함수와 copygraphics
함수를 사용하면 플롯 옆에 있는 UI 컴포넌트 및 컨테이너(예: 패널)는 저장된 콘텐츠에서 제외됩니다. 이러한 경우, exportapp
함수를 대신 사용하십시오.
내보낼 그래픽스 지정하기
플롯을 파일로 내보내려면 exportgraphics
함수를 사용하십시오. 부모 Figure를 첫 번째 인수로 지정합니다. 예를 들어, 535×325 픽셀 크기의 Figure를 만들어 보겠습니다. 그런 다음 등고선 플롯을 만들고 Figure를 PNG 파일로 내보냅니다. Figure를 지정하면 Figure를 직접 부모로 갖는 모든 axes 객체와 그 객체의 콘텐츠를 캡처할 수 있습니다. Figure가 주석을 포함하는 경우 exportgraphics
는 주석도 캡처합니다.
f = figure;
f.Position(3:4) = [535 325];
contour(peaks)
colorbar
exportgraphics(f,"contour.png")
또는, exportgraphics
함수에 대한 첫 번째 인수로 Figure 대신 axes 객체를 지정할 수 있습니다. 이 경우 Figure가 하나의 axes 객체만 포함하므로 결과로 생성되는 파일은 동일합니다.
ax = gca;
exportgraphics(ax,"contour.png")
TiledChartLayout
객체를 첫 번째 인수로 전달하여 플롯을 타일 형식 배열로 내보낼 수도 있습니다. 예를 들어, 두 개의 플롯을 타일 형식 배열로 만들고 타일 형식 차트 레이아웃을 PNG 파일로 내보내 보겠습니다.
f = figure;
f.Position(3:4) = [650 300];
t = tiledlayout(1,2);
ax1 = nexttile;
plot([4 3 2; 3 2 1],LineWidth=2)
ax2 = nexttile;
contourf(peaks)
exportgraphics(t,"twoplots.png")
타일 형식 차트 레이아웃에서 하나의 플롯을 내보내려면 nexttile
함수를 사용하여 axes 객체를 가져와 exportgraphics
함수에 전달합니다. 예를 들어, nexttile(2)
는 두 번째 타일의 좌표축을 반환합니다.
ax = nexttile(2);
exportgraphics(ax,"secondplot.png")
해상도 지정하기
플롯을 특정 해상도의 이미지로 내보내려면 exportgraphics
함수를 Resolution
이름-값 인수와 함께 사용합니다. 기본적으로 이미지는 150dpi(인치당 도트 수)로 저장됩니다.
인쇄된 출력물의 일반적인 해상도는 300dpi입니다. 웹 그래픽스의 일반적인 해상도는 72dpi입니다. MATLAB®이 사용하는 것과 동일한 해상도를 사용하여 플롯을 내보내려면 그래픽스 root(groot
) 객체의 ScreenPixelsPerInch
속성값을 사용합니다. 지정한 해상도에 관계없이 최종 이미지의 픽셀 크기는 대략 Figure의 너비와 높이에 해상도를 곱한 값입니다. 예를 들어, 4인치 너비의 플롯을 300dpi로 내보내면 1200픽셀 너비의 이미지가 생성됩니다.
예를 들어, 535×325 픽셀 크기의 Figure를 만들어 보겠습니다. 그런 다음 막대 차트를 만들고 MATLAB이 사용하는 것과 동일한 해상도를 사용하여 이 차트를 내보냅니다.
f = figure; f.Position(3:4) = [535 325]; bar([1 11 7 8 2 2 9 3 6]) sppi = get(groot,"ScreenPixelsPerInch"); exportgraphics(f,"barchart.png",Resolution=sppi)
해상도 및 너비와 높이를 지정하여 특정 크기의 플롯을 내보낼 수 있습니다. 예를 들어, 다음 코드는 Figure의 콘텐츠를 300dpi, 3인치 정사각(또는 900픽셀 정사각) 이미지로 저장합니다. 너비와 높이 지정에 대한 자세한 내용은 다음 섹션에서 제공됩니다.
exportgraphics(gcf,"bar-3inch-300dpi.png",Units="inches", ... Width=3,Height=3,Resolution=300)
크기 지정하기
exportgraphics
함수에는 플롯을 내보낼 때 크기와 종횡비를 제어할 수 있는 4개의 이름-값 인수(Width
, Height
, Units
, PreserveAspectRatio
)가 있습니다.
출력 파일의 크기를 제어하는 간단한 방법은 Width
또는 Height
이름-값 인수를 사용하여 한 차원의 길이를 지정하는 것입니다. MATLAB은 원래의 종횡비를 유지하기 위해 지정되지 않은 차원을 조정합니다. Width
또는 Height
값을 지정하는 경우 Units
이름-값 인수를 지정하십시오.
크기를 지정하는 경우 Figure의 Position
속성도 조정하여 Figure의 너비 및 높이가 내보낸 파일의 원하는 너비 및 높이와 유사하도록 하십시오. Position
속성은 요소를 4개 가진 벡터입니다. 너비 값과 높이 값은 벡터의 마지막 두 요소입니다(기본적으로 픽셀 단위). exportgraphics
를 호출하기 전에 이 조정을 수행하십시오.
예를 들어, 535×325 픽셀 크기의 Figure를 만들어 보겠습니다. 막대 차트를 만들고 너비가 약 500픽셀인 PNG 파일로 저장합니다. MATLAB은 원래의 종횡비를 유지하도록 높이를 334픽셀로 조정합니다. 기본적으로 콘텐츠는 좌표축 테두리에 꼭 맞게 잘립니다. 이미지 주위의 회색 테두리는 캡처된 영역을 나타냅니다. 테두리 자체는 저장된 이미지의 일부가 아닙니다.
f = figure; f.Position(3:4) = [535 325]; bar([1 11 7 8 2 2 9 3 6]) exportgraphics(f,"bar500.png",Units="pixels",Width=500)
Width
값과 Height
값을 모두 지정할 수도 있습니다. 다음 코드는 종횡비를 변경하여 꼭 맞게 잘린 정사각 이미지를 만듭니다.
exportgraphics(f,"barsquare.png", ... Units="pixels",Width=400,Height=400)
차트의 원래 종횡비를 유지하려면 PreserveAspectRatio
이름-값 인수를 "on"
으로 지정합니다. 다음 코드는 막대 차트의 원래 종횡비를 유지하기 위해 채우기를 포함하는 정사각 이미지를 만듭니다.
exportgraphics(f,"barsquare-padded.png", ... Units="pixels",Width=400,Height=400,PreserveAspectRatio="on")
이미지 파일을 내보낼 때 픽셀이 아닌 단위(예: 인치 또는 센티미터)를 사용하여 너비나 높이를 지정하는 경우 Resolution
이름-값 인수를 지정해야 합니다. 그렇지 않으면 출력물의 디폴트 해상도가 150dpi이므로 용도에 필요한 크기와 다를 수 있습니다.
예를 들어, 막대 차트를 만들어 MATLAB이 사용하는 것과 동일한 해상도를 사용하여 3인치 정사각 이미지로 저장해 보겠습니다.
f = figure; f.Position(3:4) = [300 300]; bar([1 11 7 8 2 2 9 3 6]) sppi = get(groot,"ScreenPixelsPerInch"); exportgraphics(f,"bar3inchsquare.png", ... Units="inches",Width=3,Height=3, ... Resolution=sppi)
크기를 제어하는 또 다른 방법은 콘텐츠를 벡터 그래픽스 파일로 저장하는 것입니다. 그러면 최종 애플리케이션 내에서 콘텐츠 크기를 조정할 수 있습니다. 콘텐츠를 벡터 그래픽스 파일로 저장하려면 ContentType
이름-값 인수가 "vector"
로 지정된 exportgraphics
함수를 사용합니다. 예를 들어, 막대 차트를 만들고 벡터 그래픽스를 포함하는 PDF 조각으로 Figure를 저장해 보겠습니다. 모든 글꼴이 PDF 파일에 포함됩니다. 출력 파일은 다음 이미지와 유사합니다.
f = figure; f.Position(3:4) = [535 325]; bar([1 11 7 8 2 2 9 3 6]) exportgraphics(f,"bar.pdf",ContentType="vector")
Figure를 SVG 파일로 내보낼 수도 있습니다. SVG 파일은 항상 벡터 그래픽스를 포함하므로 ContentType
값을 지정할 필요가 없습니다.
exportgraphics(f,"bar.svg")
채우기 지정하기
exportgraphics
에 Padding
이름-값 인수를 사용하여 내보낸 플롯 주변의 채우기 정도를 제어할 수 있습니다. 기본적으로 Padding
값은 "tight"
입니다. 이 값은 최소한의 채우기를 제공합니다(단, Width
값과 Height
값을 지정했을 때 PreserveAspectRatio
값을 "on"
으로 설정한 경우 제외).
예를 들어, 선 플롯을 만들고 디폴트 채우기를 사용하여 400×300픽셀 JPG 파일로 내보내 보겠습니다. 이미지 주위의 회색 테두리는 캡처된 영역을 나타냅니다. 테두리 자체는 저장된 이미지의 일부가 아닙니다.
f = figure; f.Position(3:4) = [400 300]; plot([4 3 2 1; 3 2 1 4],LineWidth=2) exportgraphics(f,"plot-tight-padding.jpg", ... Units="pixels",Width=400,Height=300)
Figure에 표시된 것과 동일한 채우기를 사용하려면 Padding
이름-값 인수를 "figure"
로 지정합니다. 채우기는 지정한 크기에 포함됩니다. 따라서 내보낸 플롯은 추가 채우기를 수용하기 위해 약간 더 작습니다.
exportgraphics(f,"plot-figure-padding.jpg", ... Units="pixels",Width=400,Height=300, ... Padding="figure")
사용자 지정 채우기 값을 지정하려면 Padding
이름-값 인수를 Width
와 Height
값과 동일한 단위의 숫자로 지정합니다. 이 경우, 플롯의 각 변에 10픽셀을 추가합니다.
exportgraphics(f,"plot-10px-padding.jpg", ... Units="pixels",Width=400,Height=300, ... Padding=10)
배경색 지정하기
기본적으로 exportgraphics
함수는 Figure의 테마에 해당하는 배경색으로 콘텐츠를 저장합니다. BackgroundColor
이름-값 인수를 다음 값 중 하나로 설정하여 다른 배경을 지정할 수 있습니다.
"current"
— 좌표축 부모 컨테이너(예: Figure 또는 패널)의 색에 따라 색을 선택합니다. Figure의 테마가 밝은 경우 배경색은 흰색입니다. 테마가 어두운 경우 배경색은 진한 회색(거의 검은색)입니다. 부모 컨테이너에 사용자가 설정한 사용자 지정 색이 있는 경우 배경색은 사용자 지정 색과 일치합니다."none"
—ContentType
의 값에 따라 배경색을 투명, 흰색 또는 진한 회색(거의 검은색)으로 설정합니다.ContentType="vector"
인 경우, 배경색은 투명입니다.ContentType="image"
인 경우, 라이트 테마의 Figure는 배경색이 흰색이고, 다크 테마의 Figure는 진한 회색(거의 검은색)입니다.
사용자 지정 색으로, RGB 3색(예:
[1 0 0]
), 16진수 색 코드(예:"#FF0000"
) 또는 색 이름(예:"red"
)으로 지정됩니다.
예를 들어, 줄기 플롯을 만들고 투명 배경을 사용하는 PDF 파일로 Figure를 저장해 보겠습니다.
f = figure; f.Position(3:4) = [400 300]; stem(1:10,"filled",LineWidth=2) ylim padded exportgraphics(f,"stem-transparent.pdf",ContentType="vector",... BackgroundColor="none")
좌표축 제한 및 눈금 값 유지하기
경우에 따라 exportgraphics
함수는 출력물의 글꼴 크기와 종횡비에 따라 각기 다른 좌표축 제한 또는 눈금 값을 사용하여 콘텐츠를 캡처합니다. 좌표축 제한과 눈금 값이 변경되지 않도록 하려면 좌표축의 눈금 값 모드 속성과 제한 모드 속성을 "manual"
로 설정하십시오. 예를 들어, 카테시안 좌표축에 플로팅할 때 XTickMode
, YTickMode
, ZTickMode
, XLimMode
, YLimMode
, ZLimMode
속성을 "manual"
로 설정합니다.
예를 들어, 다음 코드는 플롯을 만들고 모드 속성을 "manual"
로 설정합니다. 그런 다음 현저히 다른 종횡비로 플롯을 내보냅니다. 좌표축 제한과 눈금 값은 출력 파일에서 유지됩니다.
f = figure; f.Position(3:4) = [400 300]; plot([4 3 2 1; 3 2 1 4],LineWidth=2) % Set the mode properties of the axes ax = gca; ax.XTickMode = "manual"; ax.YTickMode = "manual"; ax.ZTickMode = "manual"; ax.XLimMode = "manual"; ax.YLimMode = "manual"; ax.ZLimMode = "manual"; exportgraphics(f,"eplot-preserveticks.png", ... Units="pixels",Width=200,Height=400)
극좌표 플롯의 경우 극좌표 좌표축의 RTickMode
, ThetaTickMode
, RLimMode
, ThetaLimMode
속성을 "manual"
로 설정합니다.