メインコンテンツ

copygraphics

プロットまたはグラフィックスの内容をクリップボードにコピー

説明

copygraphics(obj) は、obj で指定されたグラフィックス オブジェクトの内容をシステムのクリップボードにコピーします。グラフィックス オブジェクトは、任意のタイプの座標軸、Figure、スタンドアロンの可視化、タイル表示チャート レイアウト、または Figure 内のコンテナーのいずれかにできます。クリップボードの内容は、他のアプリケーションおよびドキュメントに貼り付けることができます。

copygraphics(obj,Name,Value) は、内容をクリップボードにコピーするための追加オプションを指定します。たとえば、copygraphics(gca,Resolution=300) は、現在の座標軸の内容を 300 DPI のイメージとしてクリップボードにコピーします。

すべて折りたたむ

ライン プロットを作成して現在の座標軸を取得します。次に、座標軸の内容をクリップボードにコピーします。

plot(rand(5,5))
ax = gca;
copygraphics(ax)

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

イメージを表示して現在の座標軸を取得します。次に、座標軸の内容を 300 DPI のイメージとしてコピーします。

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

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

R2025a 以降

コピーされた内容の幅と高さを指定する場合は、同程度のサイズと縦横比をもつ Figure を作成します。たとえば、サイズが 500×400 ピクセルの Figure にステム プロットを作成します。その後、両側に 10 ピクセルのパディングを含む 500×400 ピクセル サイズのイメージとして座標軸をコピーします。

f = figure;
f.Position(3:4) = [500 400];
stem(1:10,"filled",LineWidth=2)
ylim padded
ax = gca;
copygraphics(ax,Units="pixels",Width=500,Height=400, ...
        ContentType="image",Padding=10)

Stem plot

注釈が座標軸の境界からはみ出しているプロットを表示します。次に、Figure の内容をコピーします。

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

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

棒グラフを表示して現在の座標軸を取得します。次に、座標軸の内容をベクトル グラフィックスとしてコピーします。

bar([10 22 31 43])
ax = gca;
copygraphics(ax,'ContentType','vector')

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

2 つのプロットをタイル表示チャート レイアウトで表示します。次に、関数 copygraphicsTiledChartLayout オブジェクトを渡して、両方のプロットをクリップボードにコピーします。

t = tiledlayout(2,1);
nexttile
plot([1 2 3])
nexttile
plot([3 2 1])
copygraphics(t)

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

いずれかのプロットのみをコピーする場合は、座標軸戻り引数を指定して関数 nexttile を呼び出します。次に、座標軸を関数 copygraphics に渡します。

ヒートマップ チャートを表示します。次に、チャートをベクトル グラフィックスとしてコピーし、透明な背景を指定します。

h = heatmap(rand(10,10));
copygraphics(h,'ContentType','vector','BackgroundColor','none')

Figure contains an object of type heatmap.

プロットを表示して、座標軸の内容をクリップボードにコピーするためのボタンを表示する copyapp.m というプログラム ファイルを作成します。ボタンのコールバック関数で、関数 copygraphics を呼び出します。

function copyapp
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','Copy Plot');
b.ButtonPushedFcn = @buttoncallback;

    function buttoncallback(~,~)
        copygraphics(ax)
    end
end

関数 copyapp を呼び出してアプリを実行します。[Copy Plot] ボタンをクリックすると、座標軸の内容がクリップボードにコピーされます。座標軸の周囲の領域 (ボタンを含む) はコピーされません。

copyapp

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

入力引数

すべて折りたたむ

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

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

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

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

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

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

    子コンテナーをもつコンテナーを指定すると、場合によっては MATLAB® でエラーが発生することがあります。詳細については、隣接コンテナーはサポートなしを参照してください。 (R2025a 以降)

名前と値の引数

すべて折りたたむ

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

例: copygraphics(gca,Resolution=300) は、現在の座標軸の内容を 300 DPI のイメージとしてコピーします。

コピーする内容のタイプ。次のオプションのいずれかとして指定します。

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

  • "vector" — 任意のサイズにスケーリングできるベクトル グラフィックスとして内容をコピーします。

  • "image" — ラスタライズされたイメージとして内容をコピーします。

メモ

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

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

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

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

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

  • 値が "current" の場合、背景色は親コンテナーの色に応じて設定されます。たとえば figure(Color="red") を使用して赤の Figure を作成するなど、プロパティを設定して親コンテナーの色を明示的に設定している場合、コピーされるグラフィックスにはその色が使用されます。

    親コンテナーの色が設定されていない場合、コピーされるグラフィックスの背景色はテーマによって決まります。ライト テーマの背景は白です。ダーク テーマの背景は濃いグレー (ほぼ黒) になります。 (R2025a 以降)

  • 値が "none" の場合、背景色は、ContentType の値に応じて、透明、白、または濃いグレー (ほぼ黒) に設定されます。

    • ContentType="vector" の場合、背景色は透明です。

    • ContentType="image" の場合、ライト テーマの Figure の背景色は白、ダーク テーマの Figure の背景色は濃いグレー (ほぼ黒) になります。

    • 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

次の表に、ライト テーマとダーク テーマでのプロットの既定のカラー パレットを示します。

パレットパレットの色

"gem" — ライト テーマの既定値

R2025a より前: ほとんどのプロットで、これらの色が既定で使用されます。

Sample of the "gem" color palette

"glow" — ダーク テーマの既定値

Sample of the "glow" color palette

orderedcolors 関数と rgb2hex 関数を使用すると、これらのパレットの RGB 3 成分および 16 進数カラー コードを取得できます。たとえば、"gem" パレットの RGB 3 成分を取得し、16 進数カラー コードに変換します。

RGB = orderedcolors("gem");
H = rgb2hex(RGB);

R2023b より前: RGB = get(groot,"FactoryAxesColorOrder") を使用して、RGB 3 成分を取得します。

R2024a より前: H = compose("#%02X%02X%02X",round(RGB*255)) を使用して、16 進数カラー コードを取得します。

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

  • "rgb" — トゥルーカラー RGB の内容をコピーします。

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

R2025a 以降

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

Width の値が "auto" の場合、Height の値に基づいて縦横比を維持する幅が選択されます。

メモ

  • Width を数値として指定した場合、ContentType"image" または "vector" として指定する必要があります。

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

    sppi = get(groot,"ScreenPixelsPerInch");
    copygraphics(gca,Resolution=sppi)

R2025a 以降

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

Height の値が "auto" の場合、Width の値に基づいて縦横比を維持する高さが選択されます。

メモ

  • Height を数値として指定した場合、ContentType"image" または "vector" として指定する必要があります。

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

    sppi = get(groot,"ScreenPixelsPerInch");
    copygraphics(gca,Resolution=sppi)

R2025a 以降

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

説明

"tight"

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

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

イメージ周囲のグレーの境界線が取得領域の輪郭です。境界線はコピーされるイメージには含まれません。

bar(1:5)
title("My Bar Chart")
ax = gca;
copygraphics(ax)

Copied 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;
copygraphics(ax,Padding="figure")

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

正の数値

指定した量のパディングを含めます。Padding に数値を指定する場合、ContentType"image" または "vector" として指定する必要があります。名前と値の引数 Units を使用して、単位を指定できます。既定の単位は、イメージの場合は "pixels"、ベクトル グラフィックスの場合は "points" です。

棒グラフを作成し、100 ピクセルのパディングを含むイメージとしてコピーします。

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

bar(1:5)
title("My Bar Chart")
ax = gca;
copygraphics(ax,ContentType="image",Padding=100)

Copied image of a bar chart with 100 pixels of padding

R2025a 以降

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

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

メモ

WidthHeight、または Padding に値を指定する場合、ContentType"image" または "vector" として指定する必要があります。

R2025a 以降

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

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

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

説明

"on"

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

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

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

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

イメージ周囲のグレーの境界線が取得領域の輪郭です。境界線はコピーされるイメージには含まれません。

bar(1:5)
ax = gca;
copygraphics(ax,Width=250,ContentType="image", ...
             PreserveAspectRatio="on")

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

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

copygraphics(ax,Width=250,ContentType="image", ... 
          Height=350,PreserveAspectRatio="on")

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

"off"

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

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

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

bar(1:5)
ax = gca;
copygraphics(ax,Width=250,Height=350, ... 
          ContentType="image",PreserveAspectRatio="off")

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

制限

  • MATLAB Web App Server™ では copygraphics はサポートされていません。

  • MATLAB Online™ ではイメージ (ピクセル) のコピーのみがサポートされています。ベクトル グラフィックスはサポートされていません。 (R2024b 以降)

代替機能

Figure ツールストリップを使用 (R2025a 以降)

[Figure] タブで [Figure のコピー] をクリックします。詳細については、Figure のクリップボードへのコピーを参照してください。

座標軸ツール バーを使用

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

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

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

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

バージョン履歴

R2020a で導入

すべて展開する