Main Content

exportgraphics

プロットまたはグラフィックスの内容をファイルに保存する

R2020a 以降

説明

exportgraphics(obj,filename) は、obj で指定されたグラフィックス オブジェクトの内容をファイルに保存します。グラフィックス オブジェクトは、任意のタイプの座標軸、Figure、スタンドアロンの可視化、タイル表示チャート レイアウト、または Figure 内のコンテナーのいずれかにできます。結果のグラフィックスは、内容を囲む狭い余白に厳密にトリミングされます。

exportgraphics(obj,filename,Name,Value) は、ファイルを保存する追加のオプションを指定します。たとえば、exportgraphics(gca,"myplot.jpg","Resolution",300) は現在の座標軸の内容を 300 DPI のイメージ ファイルとして保存します。

すべて折りたたむ

ライン プロットを作成して現在の座標軸を取得します。次に、座標軸の内容を JPEG ファイルとして保存します。

plot(rand(5,5))
ax = gca;
exportgraphics(ax,'LinePlot.jpg')

Figure contains an axes object. The axes object contains 5 objects of type line.

イメージを表示して現在の座標軸を取得します。次に、座標軸の内容を 300-DPI JPEG ファイルとして保存します。

I = imread('peppers.png');
imshow(I)
ax = gca;
exportgraphics(ax,'Peppers300.jpg','Resolution',300)

Figure contains an axes object. The hidden axes object contains an object of type image.

注釈が座標軸の境界からはみ出しているプロットを表示します。Figure の内容を PDF ファイルとして保存します。

plot(1:10)
annotation('textarrow',[0.06 0.5],[0.73 0.5],'String','y = x ')
f = gcf;
exportgraphics(f,'AnnotatedPlot.pdf')

Figure contains an axes object. The axes object contains an object of type line.

棒グラフを表示して現在の座標軸を取得します。次に、座標軸の内容をベクトル グラフィックスのみを含む PDF として保存します。

bar([10 22 31 43])
ax = gca;
exportgraphics(ax,'BarChart.pdf','ContentType','vector')

Figure contains an axes object. The axes object contains an object of type bar.

マルチページ PDF を作成するには、名前と値の引数 'Append'true に設定します。

たとえば、ライン プロットを作成し、座標軸の内容をファイル myplots.pdf に保存します。

plot([0 0.3 0.1 0.6 0.4 1])
ax = gca;
exportgraphics(ax,'myplots.pdf')

Figure contains an axes object. The axes object contains an object of type line.

次に、棒グラフを作成し、座標軸の内容を myplots.pdf の 2 番目のページとして保存します。

bar(1:10)
exportgraphics(ax,'myplots.pdf','Append',true)

Figure contains an axes object. The axes object contains an object of type bar.

放物線と 1 つのマーカーをプロットします。for ループの反復ごとにマーカーの位置を変更し、その変更をアニメーション GIF のフレームとして取得します。

x = -10:0.5:10;
y = x.^2;
p = plot(x,y,"-o","MarkerFaceColor","red");
for i=1:41
    p.MarkerIndices = i;
    exportgraphics(gca,"parabola.gif","Append",true)
end

Figure contains an axes object. The axes object contains an object of type line.

2 つのプロットをタイル表示チャート レイアウトで表示します。次に、TiledChartLayout オブジェクトを関数 exportgraphics に渡して両方のプロットを PDF として保存します。

t = tiledlayout(2,1);
nexttile
plot([1 2 3])
nexttile
plot([3 2 1])
exportgraphics(t,'Layout.pdf')

Figure contains 2 axes objects. Axes object 1 contains an object of type line. Axes object 2 contains an object of type line.

レイアウト内のプロットのいずれか 1 つのみ保存する場合は、軸の戻り引数を使用して関数 nexttile を呼び出します。次に、座標軸を関数 exportgraphics に渡します。

ヒートマップ チャートを表示します。次に、チャートを透明な背景のベクトル グラフィックスのみを含む PDF として保存します。

h = heatmap(rand(10,10));
exportgraphics(h,'Hmap.pdf','BackgroundColor','none','ContentType','vector')

Figure contains an object of type heatmap.

座標軸の内容を保存するプロットとボタンを表示する saveapp.m と呼ばれるプログラム ファイルを作成します。ボタンのコールバック関数では、関数 uiputfile を呼び出して、ファイル名と場所についてユーザーにプロンプトを表示します。次に、指定されたファイルの絶対パスを使用して関数 exportgraphics を呼び出します。

function saveapp
f = uifigure;
ax = uiaxes(f,"Position",[25 25 400 375]);
plot(ax,[0 0.3 0.1 0.6 0.4 1])
b = uibutton(f,"Position",[435 200 90 30],"Text","Save Plot");
b.ButtonPushedFcn = @buttoncallback;

    function buttoncallback(~,~)
        filter = {"*.jpg";"*.png";"*.tif";"*.pdf";"*.eps"};
        [filename,filepath] = uiputfile(filter);
        if ischar(filename)
            exportgraphics(ax,[filepath filename]);
        end
    end
end

関数 saveapp を呼び出してアプリを実行します。アプリで [Save Plot] ボタンをクリックすると、ダイアログ ボックスにファイル名と場所のプロンプトが表示されます。次に、座標軸の内容が指定されたファイルに保存されます。ボタンを含む座標軸を囲む領域は、ファイルに含まれません。

saveapp

App containing a plot and a button labeled "Save Plot"

入力引数

すべて折りたたむ

グラフィックス オブジェクト。次のオブジェクトのいずれかとして指定します。

  • AxesPolarAxesGeographicAxes オブジェクトなど、任意のタイプの座標軸。

  • 関数 figure または uifigure で作成された Figure。

  • heatmap チャートなどのスタンドアロンの可視化。

  • 関数 tiledlayout で作成されたタイル表示チャート レイアウト。

  • PanelTabButtonGroup オブジェクトなど、Figure 内のコンテナー。

領域の取得

exportgraphics は、指定されたオブジェクトの内容を取得します。ボタンやスライダーなどの UI コンポーネントは取得しません。

また、隣接コンテナーや子コンテナーも取得しません。たとえば、ライン プロットを含む Figure の隣接パネルにヒートマップが含まれている場合を考えます。

f = figure;
ax = axes(f,"Position",[0.1 0.1 0.4 0.8]);
plot(ax,[0 1])
p = uipanel(f,"Position",[0.55 0.1 0.4 0.8]);
heatmap(p,rand(10,5))

exportgraphics(f,"myfigure.png")
exportgraphics(p,"mypanel.png")

Figure containing a line plot with an adjacent panel containing a heatmap

前のコードを実行すると、myfigure.png にはライン プロットが含まれますが、ヒートマップは含まれません。同様に、mypanel.png にはヒートマップが含まれますが、ライン プロットは含まれません。

ファイル名。ファイル拡張子を含む文字ベクトルまたは string スカラーとして指定します。filename に絶対パスが含まれない場合、MATLAB® は現在のフォルダーに保存します。ファイルの書き込み権限をもっていなければなりません。

以下の表に、サポートされるファイル形式とファイル拡張子 (大文字小文字を区別しない) を示します。

ファイル形式ファイル拡張子

Joint Photographic Experts Group (JPEG)

"jpg" または "jpeg"

Portable Network Graphics (PNG)

"png"

Tagged Image File Format (TIFF)

"tif" または "tiff"

Graphics Interchange Format (GIF)

"gif"

Portable Document Format (PDF)

ContentType"vector" に設定されている場合、PDF には組み込み可能なフォントが含まれます。

"pdf"

拡張メタファイル (EMF) (Windows® システムのみ)

"emf"

Encapsulated PostScript® (EPS)

"eps"

例: exportgraphics(gca,"myfile.jpg") は、現在の座標軸の内容を myfile.jpg という名前の JPEG ファイルに保存します。

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name を引用符で囲みます。

例: exportgraphics(gca,"myplot.jpg","Resolution",300) は、現在の座標軸の内容を 300-DPI イメージ ファイルに保存します。

EMF、EPS、PDF ファイルとして保存するときの、保存する内容のタイプ。次のいずれかの値を指定します。

  • "auto" — MATLAB は、内容がベクトル グラフィックスかイメージかを制御します。

  • "vector" — 任意のサイズに拡大できるベクトル グラフィックスとして内容を保存します。PDF ファイルを保存している場合は、組み込み可能なフォントがファイルに含まれます。

  • "image" — ファイル内の 1 つ以上のイメージにコンテンツをラスタライズします。

メモ

  • JPEG、TIFF、PNG、および GIF ファイルでは "vector" オプションはサポートされていません。

  • "vector" オプションを指定した場合、一部の可視化では漂遊線などのアーティファクトが含まれることがあります。

インチあたりのドット数 (DPI) の解像度。1 以上の正の整数として指定します。

ContentType"vector" の場合は、解像度を指定しても効果はありません。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

背景色。"current""none"、RGB 3 成分、16 進数カラー コード、または色名として指定します。背景色により、座標軸またはチャート周囲の余白の色が制御されます。

  • 値が "current" の場合、背景色は親コンテナーの色に設定されます。

  • 値が "none" の場合、背景色はファイル形式と ContentType の値に応じて透明または白に設定されます。

    • 透明 — ContentType="vector" であるファイルの場合

    • 白 — イメージ ファイル、つまり ContentType="image" の場合

    • ContentType="auto" の場合、背景色は MATLAB により、保存する内容のタイプを判別するためのヒューリスティックな方法に従って設定されます。

  • あるいは、カスタム色または名前の付いた色を指定します。

カスタム色および名前の付いた色

RGB 3 成分および 16 進数カラー コードは、カスタム色を指定するのに役立ちます。

  • RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度値は [0,1] の範囲でなければなりません。たとえば [0.4 0.6 0.7] のようになります。

  • 16 進数カラー コードは、ハッシュ記号 (#) で始まり、3 桁または 6 桁の 0 から F までの範囲の 16 進数が続く文字ベクトルまたは string スカラーです。この値は大文字と小文字を区別しません。したがって、カラー コード "#FF8800""#ff8800""#F80"、および "#f80" は等価です。

あるいは、名前を使用して一部の一般的な色を指定できます。次の表に、名前の付いた色オプション、等価の RGB 3 成分、および 16 進数カラー コードを示します。

色名省略名RGB 3 成分16 進数カラー コード外観
"red""r"[1 0 0]"#FF0000"

Sample of the color red

"green""g"[0 1 0]"#00FF00"

Sample of the color green

"blue""b"[0 0 1]"#0000FF"

Sample of the color blue

"cyan" "c"[0 1 1]"#00FFFF"

Sample of the color cyan

"magenta""m"[1 0 1]"#FF00FF"

Sample of the color magenta

"yellow""y"[1 1 0]"#FFFF00"

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

MATLAB の多くのタイプのプロットで使用されている既定の色の RGB 3 成分および 16 進数カラー コードを次に示します。

RGB 3 成分16 進数カラー コード外観
[0 0.4470 0.7410]"#0072BD"

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]"#D95319"

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]"#EDB120"

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]"#7E2F8E"

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]"#77AC30"

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]"#4DBEEE"

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]"#A2142F"

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

既存のファイルへの内容の追加。true または false として指定します。

このオプションは、以下の場合に便利です。

  • 内容を既存の PDF ファイルの最後のページとしてエクスポートする。複数のページを追加するには、Append オプションを使用して exportgraphics を複数回呼び出します。

  • 内容をアニメーション GIF ファイルの最後のフレームとしてエクスポートする。複数のフレームを追加するには、Append オプションを使用して exportgraphics を複数回呼び出します。

メモ

引数 Append を使用すると、座標軸の範囲が同じであるチャートから基本的なアニメーション GIF ファイルを作成できます。チャート間で座標軸の範囲が異なる場合は、axis("manual") を使用するか、または関数 xlimylim または zlim を使用して、チャートの作成時に座標軸の範囲を固定することを検討してください。

イメージやより詳細なグラフィックスのアニメーションを作成するには、imwrite を使用します。imwrite の使用の詳細については、アニメーション GIF を書き込むを参照してください。

既存のファイルの名前を指定した場合に Append オプションを false に設定すると、MATLAB はそのファイルの内容を新しい内容で上書きします。

このオプションでサポートされるのは PDF および GIF ファイルのみです。

保存されるグラフィックスの色空間。"rgb""gray" または "cmyk" として指定します。

  • "rgb" — トゥルーカラー RGB の内容をエクスポートします。

  • "gray" — 内容をグレースケールに変換します。

  • "cmyk" — 内容をシアン、マゼンタ、黄色、黒 (CMYK) に変換します。この色空間は EPS ファイルでのみサポートされます。

MATLAB Online™ でのみサポート (R2024a 以降)

保存されるグラフィックスの幅。"auto" または正の数値として指定します。カスタムの幅を指定するには、数値を指定します。既定の単位は、イメージ ファイルの場合はピクセル、ベクトル グラフィックス ファイルの場合はポイントです。名前と値の引数 Units を使用して、異なる単位を指定できます。すべての幅の値には、グラフィックスの周囲のパディングが含まれます。保存されたグラフィックスには既定でパディングの小さい余白が含まれますが、これは名前と値の引数 Padding を指定して変更できます。

exportgraphicsPreserveAspectRatio の値に応じて適切な幅が選択されるようにするには、Width"auto" に設定します。

  • PreserveAspectRatio の値が "on" (既定値) の場合、exportgraphics は、指定された Height の値に従って元の縦横比を維持する幅を選択します。

  • PreserveAspectRatio の値が "off" の場合、exportgraphics は既定の幅を使用してグラフィックスを保存します。保存されたグラフィックスの縦横比は、元のグラフィックスとは異なる場合があります。

メモ

イメージ ファイルを保存する際、既定の Width ("auto") は名前と値の引数 Resolution (既定では 150) によって異なります。既定の幅を使用し、サイズを画面上とより厳密に一致させるには、名前と値の引数 Resolutionget(groot,"ScreenPixelsPerInch") によって返される値に指定します。以下に例を示します。

sppi = get(groot,"ScreenPixelsPerInch");
exportgraphics(gca,"myplot.png","Resolution",sppi)

MATLAB Online でのみサポート (R2024a 以降)

保存されるグラフィックスの高さ。"auto" または正の数値として指定します。カスタムの高さを指定するには、数値を指定します。既定の単位は、イメージ ファイルの場合はピクセル、ベクトル グラフィックス ファイルの場合はポイントです。名前と値の引数 Units を使用して、異なる単位を指定できます。すべての高さの値には、グラフィックスの周囲のパディングが含まれます。保存されたグラフィックスには既定でパディングの小さい余白が含まれますが、これは名前と値の引数 Padding を指定して変更できます。

exportgraphicsPreserveAspectRatio の値に応じて適切な高さが選択されるようにするには、Height"auto" に設定します。

  • PreserveAspectRatio の値が "on" (既定値) の場合、exportgraphics は、指定された Width の値に従って元の縦横比を維持する高さを選択します。

  • PreserveAspectRatio の値が "off" の場合、exportgraphics は既定の高さを使用してグラフィックスを保存します。保存されたグラフィックスの縦横比は、元のグラフィックスとは異なる場合があります。

メモ

イメージ ファイルを保存する際、既定の Height ("auto") は名前と値の引数 Resolution (既定では 150) によって異なります。既定の高さを使用し、サイズを画面上とより厳密に一致させるには、名前と値の引数 Resolutionget(groot,"ScreenPixelsPerInch") によって返される値に指定します。以下に例を示します。

sppi = get(groot,"ScreenPixelsPerInch");
exportgraphics(gca,"myplot.png","Resolution",sppi)

MATLAB Online でのみサポート (R2024a 以降)

保存されるグラフィックスの周囲のパディング。次の表のいずれかの値として指定します。

説明

"tight"

x 軸と y 軸のラベル、タイトル、および装飾 (凡例やカラー バーなど) が十分収まるパディングを含めます。

棒グラフを作成し、"tight" パディングを含むイメージとしてエクスポートします。"tight" は既定のパディング値であるため、指定する必要はありません。

イメージ周囲のグレーの境界線が取得領域の輪郭です。境界線は保存されるイメージの一部ではありません。

bar(1:5)
title("My Bar Chart")
ax = gca;
exportgraphics(ax,"tightpadding.png")

Saved image of a bar chart with just enough padding to include the x- and y-axes labels and the chart title

"figure"

Figure ウィンドウに示されているのと同じ相対量のパディングを含めます。

棒グラフを作成し、"figure" パディングを含むイメージとしてエクスポートします。

イメージ周囲のグレーの境界線が取得領域の輪郭です。

bar(1:5)
title("My Bar Chart")
ax = gca;
exportgraphics(ax,"figurepadding.png","Padding","figure")

Saved image of a bar chart with the same relative amount of padding as in the figure window

正の数値

指定した量のパディングを含めます。既定の単位は、イメージ ファイルの場合はピクセル、ベクトル グラフィックス ファイルの場合はポイントです。名前と値の引数 Units を使用して、異なる単位を指定できます。

棒グラフを作成し、100 ピクセルのパディングを含むイメージとしてエクスポートします。イメージ周囲のグレーの境界線が取得領域の輪郭です。

bar(1:5)
title("My Bar Chart")
ax = gca;
exportgraphics(ax,"100pixelpadding.png","Padding",100)

Saved image of a bar chart with 100 pixels of padding

MATLAB Online でのみサポート (R2024a 以降)

WidthHeightPadding の値の単位。"auto""pixels" (イメージのみ)、"inches""centimeters" または "points" (1 ポイントは 1/72 インチ) として指定します。

既定値の "auto" では、単位はイメージ ファイルの場合は "pixels"、ベクトル グラフィックス ファイルの場合は "points" に設定されます。

MATLAB Online でのみサポート (R2024a 以降)

元の縦横比の維持。"auto""on" または "off" として指定します。

値が "auto" の場合、exportgraphics では、名前と値の引数 Width および Height が指定されているかどうか、その組み合わせによって縦横比が変化するかどうかに応じて、"on" または "off" を選択できます。exportgraphics は、名前と値の引数 Width または Height (両方ではない) が指定されている場合は元の縦横比を維持します。両方の次元の値が指定されており、これらの値によって縦横比が変化する場合は、元の縦横比を維持しません。

次の表は、"on""off" の値の動作をまとめています。

説明

"on"

元のグラフィックスの縦横比を維持します。

  • Width または Height の値 (両方ではない) を指定した場合、exportgraphics は未指定の次元をスケーリングして元の縦横比を維持します。

  • WidthHeight の値を指定しており、その組み合わせによって縦横比が変化する場合、exportgraphics はパディングを追加して元の縦横比を維持します。

棒グラフを作成します。次に、チャートをイメージとして保存します。Width の値のみを指定します。exportgraphics は、高さをスケーリングして元の縦横比を維持します。

イメージ周囲のグレーの境界線が取得領域の輪郭です。境界線は保存されるイメージの一部ではありません。

bar(1:5)
ax = gca;
exportgraphics(ax,"scaledchart.png","Width",250, ...
                 "PreserveAspectRatio","on")

Saved image of a bar chart with the same aspect ratio as the original chart

チャートをイメージとして保存し、WidthHeight の値をイメージの縦横比が元のチャートとは異なるものになるように指定します。exportgraphics は、チャートの縦横比を維持しながら、パディングを追加して指定された次元を実現します。

exportgraphics(ax,"paddedchart.png","Width",250,... 
          "Height",350,"PreserveAspectRatio","on")

Saved image of a bar chart with padding on the top and bottom to preserve the aspect ratio of the chart

"off"

元の縦横比を維持しません。WidthHeight、またはその両方の値によって縦横比が変化する場合、exportgraphics はスケーリングもパディングも適用せず、結果の出力は元のグラフィックスと比べて伸長または圧縮されたようになります。

棒グラフを作成します。次に、チャートをイメージとして保存し、WidthHeight の値をイメージの縦横比が元のチャートとは異なるものになるように指定します。

イメージは、引き伸ばされたバージョンのチャートを示します。イメージ周囲のグレーの境界線が取得領域の輪郭です。

bar(1:5)
ax = gca;
exportgraphics(ax,"stretched-chart.png","Width",250,... 
          "Height",350,"PreserveAspectRatio","off")

Saved image of a bar chart that is vertically stretched compared to the original chart

代替機能

座標軸ツール バーの [エクスポート] ボタン にカーソルを合わせると、ドロップダウン メニューが表示され、内容をエクスポートするためのオプションが示されます。

  • Save As icon:内容を、余白なくトリミングしたイメージまたは PDF として保存します。

  • Copy as Image icon:内容をイメージとしてコピーします。

  • Copy as Vector Graphic icon:内容をベクトル グラフィックスとしてコピーします。

バージョン履歴

R2020a で導入

すべて展開する