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

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

свернуть все

Графический объект в виде одного из этих объектов:

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

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

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

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

  • Контейнер в фигуре: 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 isvector.

Типы данных: 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 истинного цвета.

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

Ограничения

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

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

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

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

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

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

Смотрите также

Введенный в R2020a