exponenta event banner

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 точек на дюйм 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 функция. При нажатии кнопки «Сохранить печать» в приложении появляется диалоговое окно с запросом имени и расположения файла. Затем содержимое осей сохраняется в указанном файле. Область, окружающая оси, включая кнопку, не включается в файл.

saveapp

Входные аргументы

свернуть все

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

  • Оси любого типа: Axes, PolarAxes, или GeographicAxes объект.

  • Фигура, созданная с помощью figure или uifigure функция.

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

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

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

'jpg' или 'jpeg'

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

'png'

Формат файла изображения с тегами (TIFF)

'tif' или 'tiff'

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

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

'pdf'

Усовершенствованный метафайл только для систем Windows ® (EMF)

'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' - Растрирует содержимое в одно или несколько изображений в файле.

Примечание

'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.

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

При наведении курсора на кнопку «Экспорт» на панели инструментов осей открывается раскрывающееся меню с опциями для экспорта содержимого:

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

  • : Копирование содержимого в виде изображения.

  • : Копирование содержимого в виде векторной графики.

См. также

|

Представлен в R2020a