Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

copygraphics

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

説明

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

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

すべて折りたたむ

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

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

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

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

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

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

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

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

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

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

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

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

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

プロットを表示して、座標軸の内容をクリップボードにコピーするためのボタンを表示する 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

入力引数

すべて折りたたむ

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

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

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

  • Figure の子になることができるチャート。たとえば、heatmap チャートは Figure の子になることができます。

  • 関数 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)

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

名前と値のペアの引数

オプションの Name,Value の引数ペアをコンマ区切りで指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順序で指定できます。

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

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

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

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

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

インチあたりのドット数 (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'

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

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

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

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

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

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

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

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

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

制限

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

代替機能

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

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

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

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

R2020a で導入