exportgraphics

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

Описание

пример

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

пример

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

Примеры

свернуть все

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

plot(rand(5,5))
ax = gca;
exportgraphics(ax,'LinePlot.jpg')

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

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

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

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

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

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

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

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

bar([10 22 31 43])
ax = gca;
exportgraphics(ax,'BarChart.pdf','ContentType','vector')

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

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

t = tiledlayout(2,1);
nexttile
plot([1 2 3])
nexttile
plot([3 2 1])
exportgraphics(t,'Layout.pdf')

Figure contains 2 axes. Axes 1 contains an object of type line. Axes 2 contains an object of type line.

Если вы хотите сохранить только один из графиков в размещении, вызовите nexttile функция с возвращаемым аргументом осей. Затем передайте оси в exportgraphics функция.

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

h = heatmap(rand(10,10));
exportgraphics(h,'Hmap.pdf','BackgroundColor','none','ContentType','vector')

Figure contains an object of type heatmap.

Создайте программный файл с именем saveapp.m отображение графика и кнопки для сохранения содержимого осей. В функции обратного вызова для кнопки вызовите uiputfile функция, чтобы запросить у пользователя имя файла и местоположение. Затем вызовите exportgraphics функция с полным путем к указанному файлу.

function saveapp
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','Save Plot');
b.ButtonPushedFcn = @buttoncallback;

    function buttoncallback(~,~)
        filter = {'*.jpg';'*.png';'*.tif';'*.pdf';'*.eps'};
        [filename,filepath] = uiputfile(filter);
        if ischar(filename)
            exportgraphics(ax,[filepath filename]);
        end
    end
end

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

saveapp

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

свернуть все

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

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

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

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

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

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

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

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

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

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))

exportgraphics(f,'myfigure.png')
exportgraphics(p,'mypanel.png')

Когда вы запускаете предыдущий код, myfigure.png содержит линейный график, но не тепловой карты. Точно так же mypanel.png содержит тепловую карту, но не линейный график.

Имя файла, заданное как вектор символов или строковый скаляр, включающий расширение файла. Если filename не включает полный путь, MATLAB® сохраняет файл в текущей папке. У вас должно быть разрешение на запись в файл.

В следующей таблице перечислены поддерживаемые форматы файлов и расширения файлов (которые не зависят от регистра).

Формат файлаРасширение файла

Формат графических данных JPEG (JPEG)

'jpg' или 'jpeg'

Портативная сетевая графика (PNG)

'png'

Теговый формат графических файлов (TIFF)

'tif' или 'tiff'

Формат переносимых документов (PDF)

PDF включает встраиваемые шрифты, когда ContentType установлено в 'vector'.

'pdf'

Расширенный метафайл для Windows® только системы (ЭДС)

'emf'

Инкапсулированный PostScript® (EPS)

'eps'

Пример: exportgraphics(gca,'myfile.jpg') сохраняет содержимое текущей системы координат в файл JPEG с именем myfile.jpg.

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: exportgraphics(gca,'myplot.jpg','Resolution',300) сохраняет содержимое текущей системы координат в 300-DPI файле изображения.

Тип содержимого для хранения при сохранении в виде файла EMF, EPS или PDF. Задайте значение как один из следующих опций:

  • 'auto' - MATLAB контролирует, является ли содержимое векторной графикой или изображением.

  • 'vector' - Сохраняет содержимое как векторную графику, которая может масштабироваться до любого размера. При сохранении PDF в файл включаются встраиваемые шрифты.

  • 'image' - Растрирует содержимое в одно или несколько изображений в файле.

Примечание

The 'vector' опция не поддерживается для файлов JPEG, TIFF и PNG.

Разрешение в точках на дюйм (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', или 'cmyk'.

  • 'rgb' - Экспорт содержимого RGB truecolor.

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

  • 'cmyk' - Преобразуйте содержимое в голубой, пурпурный, желтый и черный (CMYK) перед экспортом содержимого. Это цветовое пространство поддерживается только для файлов EPS.

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

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

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

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

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

См. также

|

Введенный в R2020a