Main Content

copygraphics

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

R2020a 以降

説明

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 axes object contains an object of type image.

注釈が座標軸の境界からはみ出しているプロットを表示します。次に、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 内のコンテナー。

領域の取得

copygraphics は、指定されたオブジェクトの内容を取得します。ボタンやスライダーなどの 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))

copygraphics(f)
copygraphics(p)

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

上記のコードで、最初の copygraphics コマンドはライン プロットをコピーしますが、ヒートマップはコピーしません。2 番目の copygraphics コマンドはヒートマップをコピーしますが、ライン プロットはコピーしません。

名前と値の引数

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

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

例: 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' の場合、背景色は親コンテナーの色に設定されます。

  • 値が '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

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

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

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

制限

関数 copygraphics は、MATLAB Online™ または MATLAB Web App Server™ 上でホストされている Web アプリではサポートされません。

代替機能

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

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

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

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

バージョン履歴

R2020a で導入