copygraphics

Скопируйте графическое или графическое содержимое в буфер обмена

Описание

пример

copygraphics(obj) копирует содержимое графического объекта, заданное как obj в системный буфер обмена. Графическим объектом может быть любой тип осей, рисунок, автономная визуализация, размещение мозаичного графика или контейнер внутри рисунка. Содержимое буфера обмена доступно для вставки в другие приложения и документы.

пример

copygraphics(obj,Name,Value) задает дополнительные опции для копирования содержимого в буфер обмена. Для примера, copygraphics(gca,'Resolution',300) копирует содержимое текущей системы координат в буфер обмена как 300-DPI изображение.

Примеры

свернуть все

Создайте линейный график и получите текущую систему координат. Затем скопируйте содержимое осей в буфер обмена.

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

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

Отобразите изображение и получите текущие системы координат. Затем скопируйте содержимое осей как 300-DPI изображение.

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

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

Отображение графика с аннотацией, выходящей за пределы осей. Затем скопируйте содержимое рисунка.

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

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

Отобразите столбчатую диаграмму и получите текущие системы координат. Затем скопируйте содержимое осей как вектор изображение.

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

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

Отображение двух графиков в размещении мозаичной диаграммы. Затем скопируйте оба графика в буфер обмена, передав TiledChartLayout объект для copygraphics функция.

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

Figure contains 2 axes. Axes 1 contains an object of type line. Axes 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

Входные параметры

свернуть все

Графический объект, заданный как один из следующих объектов:

  • Любой тип осей: Axes, PolarAxes, или GeographicAxes объект.

  • A рисунка, созданная с любым из них figure или uifigure функция.

  • Автономная визуализация, такая как heatmap график.

  • Мозаичный график размещения, который вы создаете с tiledlayout функция.

  • Контейнер внутри рисунка: a Panel, Tab, или ButtonGroup объект.

Область захвата

copygraphics захватывает содержимое заданного объекта. Он не захватывает компоненты пользовательского интерфейса, такие как кнопки или ползунки.

Он также не захватывает соседние контейнеры или дочерние контейнеры. Для примера рассмотрим рисунок, содержащую линейный график с соседней панелью, содержащей тепловую карту:

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 команда копирует линейный график, но не тепловую карту. Второе 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, шестнадцатеричный цветовой код или название цвета. Цвет фона управляет цветом поля, которое окружает оси или график.

  • Значение 'current' устанавливает цвет фона на цвет родительского контейнера.

  • Значение 'none' устанавливает цвет фона прозрачный или белый, в зависимости от значения ContentType:

    • Когда ContentType='vector'цвет фона прозрачный.

    • Когда ContentType='image', цвет фона белый.

    • Когда ContentType='auto'MATLAB устанавливает цвет фона в соответствии с эвристикой, которую он использует для определения скопируемого содержимого типа.

  • Кроме того, задайте пользовательский цвет или именованный цвет.

Пользовательские цвета и именованные цвета

Триплеты RGB и шестнадцатеричные цветовые коды полезны для определения пользовательских цветов.

  • Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]; например, [0.4 0.6 0.7].

  • Шестнадцатеричный код цвета - это вектор символов или строковый скаляр, который начинается с хэш-символа (#), за которым следуют три или шесть шестнадцатеричных цифр, которые могут варьироваться от 0 на F. Значения не зависят от регистра. Таким образом, цветовые коды '#FF8800', '#ff8800', '#F80', и '#f80' являются эквивалентными.

Кроме того, вы можете задать имена некоторых простых цветов. В этой таблице перечислены именованные опции цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

Название цветаКраткое имяТриплет RGBШестнадцатеричный цветовой кодВнешность
'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'

Вот триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию, которые MATLAB использует во многих типах графиков.

Триплет RGBШестнадцатеричный цветовой кодВнешность
[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'

Цветовое пространство сохраненного графика, заданное как 'rgb' или 'gray'.

  • 'rgb' - Копировать содержимое RGB truecolor.

  • 'gray' - Преобразуйте содержимое в полутоновый.

Ограничения

copygraphics функция не поддерживается в MATLAB Online™ или в веб- приложениях, размещенных на MATLAB Web App Server™.

Альтернативная функциональность

Наведение мыши на кнопку Export на панели инструментов осей открывает раскрывающееся меню с опциями для экспорта содержимого:

  • : Сохраните содержимое как плотно обрезанное изображение или PDF.

  • : Скопируйте содержимое как изображение.

  • : Скопируйте содержимое как вектор изображение.

См. также

Введенный в R2020a
Для просмотра документации необходимо авторизоваться на сайте