Скопируйте график или графическое содержимое к буферу обмена
copygraphics(
копирует содержимое графического объекта, заданного obj
)obj
к системному буферу обмена. Графический объект может быть любым типом осей, фигуры, автономной визуализации, мозаичного размещения графика или контейнера в фигуре. Содержимое буфера обмена доступно для вставки в другие приложения и документы.
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)
Отобразите график с аннотацией, которая расширяет вне границ осей. Затем скопируйте содержимое фигуры.
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')
Отобразите два графика в мозаичном размещении графика. Затем скопируйте оба графика в буфер обмена путем передачи TiledChartLayout
возразите против copygraphics
функция.
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
obj
— Графический объектГрафический объект в виде одного из этих объектов:
Любой тип осей: Axes
polaraxes
, или GeographicAxes
объект.
Автономная визуализация, такая как 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.'ContentType'
— Тип содержимого'auto'
(значение по умолчанию) | 'vector'
| 'image'
Тип содержимого, чтобы скопировать в виде одной из этих опций:
'auto'
— MATLAB® управляет, является ли содержимое векторным изображением или изображением.
'vector'
— Копирует содержимое как векторное изображение, которое может масштабироваться к любому размеру.
'image'
— Копирует содержимое как растеризированное изображение.
'Resolution'
— Разрешение (DPI)
(значение по умолчанию) | целое числоРазрешение в точках на дюйм (DPI) в виде целого числа, которое больше или равно 1
.
Определение разрешения не оказывает влияния когда ContentType
isvector
.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
'BackgroundColor'
BackgroundColor
(значение по умолчанию) | 'current'
| 'none'
| Триплет RGB | 'r'
| 'g'
| 'b'
| ...Цвет фона в виде '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' |
'Colorspace'
— Цветовое пространство'rgb'
(значение по умолчанию) | 'gray'
Цветовое пространство сохраненной диаграммы в виде 'rgb'
или 'gray'
.
'rgb'
— Скопируйте содержимое RGB истинного цвета.
'gray'
— Преобразуйте содержимое в шкалу полутонов.
copygraphics
функция не поддерживается в MATLAB Online™ или в веб-приложениях, размещенных на MATLAB Web App Server™.
Наведение на кнопку Export на панели инструментов осей показывает выпадающее меню с опциями для экспорта содержимого:
: Сохраните содержимое как плотно кадрированное изображение или PDF.
: Скопируйте содержимое как изображение.
: Скопируйте содержимое как векторное изображение.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.