15.2.9 Печать и сохранение графиков
Команда print позволяет отправлять графики на принтер и сохранять их в различных форматах. Например,
print -dpsc
печатает текущую фигуру на цветном принтере PostScript. А команда
print -deps foo.eps
сохраняет текущую фигуру в файл Encapsulated PostScript с именем foo.eps.
Текущие графические инструментарии создают очень похожие графические изображения, но различаются возможностями отображения необычного текста и печати такого текста. В целом интерпретатор "tex" (по умолчанию) лучше всего подходит как для отображения на экране, так и для печати. Однако для воспроизведения сложных текстовых формул предпочтителен интерпретатор "latex". При печати с рендерером -painters, используемым по умолчанию для всех векторных форматов, можно рассмотреть два варианта:
- Используйте параметр -svgconvert, чтобы включить отображение формул LaTeX. Обратите внимание: глифы отображаются как контуры, а исходная текстовая информация теряется.
- Используйте одно из устройств -d*latex*, чтобы создать файл .tex (а также вспомогательные файлы .eps или .pdf) для дальнейшей обработки внешним механизмом LaTeX. Обратите внимание: функция
printсначала задаст для интерпретатора всех строк значение"latex", а это значит, что все строки должны быть допустимыми строками LaTeX.
Полный пример, демонстрирующий возможности печати текста с использованием параметра -dpdflatexstandalone:
x = 0:0.01:3;
hf = figure ();
plot (x, erf (x));
hold on;
plot (x, x, "r");
axis ([0, 3, 0, 1]);
text (0.65, 0.6175, ...
['$\displaystyle\leftarrow x = {2 \over \sqrt{\pi}}' ...
'\int_{0}^{x} e^{-t^2} dt = 0.6175$'],
"interpreter", "latex");
xlabel ("x");
ylabel ("erf (x)");
title ("erf (x) with text annotation");
print (hf, "plot15_7", "-dpdflatexstandalone");
system ("pdflatex plot15_7");
open plot15_7.pdf Результат этого примера показан на рисунке 15.7
Рисунок 15.7: Пример включения текста с использованием -dpdflatexstandalone
-
: print
() -
: print
(options) -
: print
(filename, options) -
: print
(hfig, …) -
:
RGB =print("-RGBImage", …) -
Форматирует фигуру для печати и сохраняет её в файл, отправляет на принтер или возвращает изображение RGB.
filename задаёт имя выходного файла. Если у имени файла нет суффикса, он определяется по указанному устройству и добавляется к имени файла. Если не указаны ни имя файла, ни параметр
"-RGBImage", вывод отправляется на принтер. Различные параметры и аргументы имени файла можно указывать в любом порядке, за исключением аргумента дескриптора фигуры hfig, который, если присутствует, должен быть первым.Пример: печать в файл в форматах PDF и JPEG.
figure (1); clf (); surf (peaks); print figure1.pdf # The extension specifies the format print -djpg figure1 # Will produce "figure1.jpg" file
Если первый аргумент — дескриптор hfig объекта-фигуры, он задаёт фигуру для печати. По умолчанию печатается текущая фигура, возвращаемая функцией
gcf.Для форматов с разбиением на страницы, например PostScript и PDF, размер страницы задаётся свойством фигуры
papersizeвместе со свойствомpaperunits. Расположение и размер графика на странице задаются свойством фигурыpaperposition. Ориентация страницы задаётся свойством фигурыpaperorientation.Для форматов без разбиения на страницы, например форматов изображений вроде JPEG, ширина и высота выходного изображения задаются значениями свойства фигуры
paperposition(3:4).Команда
printподдерживает множество параметров:-fh-
Задаёт дескриптор h фигуры для печати.
Пример: печать фигуры 1.
figure (1); clf (); surf (peaks); figure (2); print -f1 figure1.pdf ## Equivalent functional form: print (1, "figure1.pdf")
-Pprinter-
Задаёт имя printer принтера, на который отправляется график, если не указано имя filename.
Пример: печать на принтере с именем PS_printer в формате PostScript.
clf (); surf (peaks); print -dpswrite -PPS_printer
-RGBImage-
Возвращает изображение RGB размером M на N на 3 с изображением фигуры. Размер изображения зависит от параметров форматирования. Это похоже на снимок экрана с графиком, однако параметры форматирования, такие как разрешение или монохромный/цветной вывод, можно изменить.
Пример: получение пикселей изображения фигуры.
clf (); surf (peaks); rgb = print ("-RGBImage"); -image | -opengl-vector | -painters-
Задаёт, использовать ли растровый рендерер на основе пикселей (-image или -opengl) либо векторный рендерер (-vector или -painters). Это равносильно изменению свойства фигуры
"Renderer". Если свойство фигуры"RendererMode"имеет значение"auto"(по умолчанию), Octave использует рендерер"opengl"для растровых форматов (например, JPEG) и"painters"для векторных форматов (например, PDF). Эти параметры поддерживаются только графическим инструментарием "qt". -svgconvert (default)-nosvgconvert-
При использовании рендерера -painters этот параметр включает или отключает инструментарий на основе SVG с расширенными возможностями:
- Работа со шрифтами:
-
Для интерпретаторов "none" и "tex" фактический шрифт встраивается в выходной файл, что позволяет печатать произвольные символы и шрифты во всех векторных форматах.
Строки, использующие интерпретатор
"latex", отображаются с помощью объектов-контуров. Выглядит это хорошо, однако текстовая информация (шрифт, символы…) теряется. - Упрощение вывода:
-
По умолчанию параметр -painters отображает объекты patch и surface в виде наборов треугольников. При просмотре файла это может приводить к артефактам сглаживания. Параметр -svgconvert восстанавливает многоугольники, чтобы избежать таких артефактов (особенно на двумерных графиках).
- Прозрачность:
Позволяет печатать прозрачные графические объекты в формате PDF. В форматах PostScript наличие любого прозрачного объекта приводит к растеризации вывода.
Внимание: если Octave был собран с Qt версии ниже 5.13, параметр -svgconvert может привести к неточному отображению объектов-изображений.
-polymerge-nopolymerge-polymerge-all-
При использовании серверной части на основе SVG -svgconvert грани отображаются в виде треугольников. В некоторых случаях некоторые программы просмотра могут отображать тонкие линии вдоль общих рёбер таких треугольников. Эти параметры определяют, будут ли все треугольники с общими рёбрами объединяться в многоугольники (-polymerge-all; для графики со множеством треугольников, включая маркеры линий, это может занять некоторое время), объединяться только соседние многоугольники (-polymerge) или треугольники не будут объединяться (-no-polymerge). По умолчанию объединяются только соседние треугольники с общим ребром, за исключением случаев, когда печатаемая фигура содержит графические объекты patch или surface: тогда объединяются все треугольники с общими рёбрами.
-portrait-landscape-
Задаёт ориентацию графика при печати. Для вывода без печати соотношение сторон выходного изображения соответствует области графика, определённой свойством
"paperposition"в указанной ориентации. Этот параметр равносилен изменению свойства фигуры"paperorientation". -fillpage-bestfit-
При использовании формата с разбиением на страницы (PDF, PostScript, принтер) игнорирует свойство
"paperposition"и размещает график на всей странице. Параметр -fillpage растягивает график на всю страницу, оставляя поля шириной 0,25 дюйма со всех сторон. Параметр -bestfit увеличивает график настолько, насколько возможно, не искажая его исходное соотношение сторон. -color-mono-
Цветной или монохромный вывод.
-solid-dashed-
Принудительно задаёт для всех линий сплошной или пунктирный стиль соответственно.
-noui-
Не печатать объекты uicontrol, например кнопки, которые могут накладываться на график. Это поведение используется по умолчанию; включить объекты uicontrol в вывод без применения внешнего средства захвата экрана невозможно.
-rNUM-
Разрешение растровых изображений в точках на дюйм (DPI). Для метафайлов и SVG по умолчанию используется разрешение экрана; для остальных форматов — 150 DPI. Чтобы задать разрешение экрана, используйте
"-r0".Пример: растровый вывод высокого разрешения.
clf (); surf (peaks (), "facelighting", "gouraud"); light (); print ("-r600", "lit_peaks.png"); -Sxsize,ysize-
Размер графика в пикселях для растровых форматов, включая PNG, JPEG, PNG и необычный случай SVG. Для всех векторных форматов, включая PDF, PS и EPS, размер графика задаётся в пунктах. Этот параметр равносилен изменению ширины и высоты выходного изображения путём задания свойства фигуры
paperposition(3:4). При использовании командной формы функции print необходимо заключать параметр xsize,ysize в кавычки, чтобы интерпретатор Octave не распознал содержащуюся в нём запятую (’,’). Например, укажите "-S640,480". -tight-loose-
Задаёт для файлов EPS плотную или свободную ограничивающую рамку. По умолчанию используется плотная рамка.
-preview-
Добавляет предварительный просмотр в файлы EPS. Поддерживаются следующие форматы:
-interchange-
Добавляет предварительный просмотр в формате interchange.
-metafile-
Добавляет предварительный просмотр в формате метафайла.
-pict-
Добавляет предварительный просмотр в формате pict.
-tiffДобавляет предварительный просмотр в формате TIFF.
-append-
Добавляет вывод PostScript или PDF в существующий файл того же типа.
-Ffontname-Ffontname:size-F:size-
Использует fontname и/или fontsize для всего текста. Для некоторых устройств, например fig, значение fontname игнорируется.
-ddevice-
Доступный формат вывода задаётся параметром device и должен быть одним из следующих (устройства, отмеченные
'*', доступны только с инструментариями Gnuplot):Векторные форматы
svg-
Масштабируемая векторная графика.
pdfpdfcrop-
Portable Document Format. Устройство
pdfформатирует фигуру для печати на бумаге. Размер окружающей страницы и положение фигуры на странице задаются свойствами фигуры paper*.Используйте
pdfcrop, если окружающая страница не нужна.Внимание: при использовании параметра -nosvgconvert PDF наследует те же ограничения, что и PostScript (ограниченный набор шрифтов и отсутствие прозрачности).
eps(2)epsc(2)-
Encapsulated PostScript (уровни 1 и 2, монохромный и цветной).
Графические инструментарии на основе OpenGL всегда создают PostScript уровня 3.0. Их поддержка текста ограничена, если не используется параметр -svgconvert (по умолчанию). К ограничениям относятся использование только символов ASCII (например, без греческих букв) и поддержка только трёх основных шрифтов PostScript: Helvetica (по умолчанию), Times и Courier. Все остальные шрифты заменяются на Helvetica.
ps(2)psc(2)-
То же, что и
eps, за исключением того, что фигура форматируется для печати на бумаге. Размер окружающей страницы и положение фигуры на странице задаются свойствами фигуры paper*. pslatexepslatexpdflatexpslatexstandaloneepslatexstandalonepdflatexstandalone-
Создаёт файл LaTeX filename.tex для текстовых частей графика и файл filename.(ps|eps|pdf) для остальных графических элементов. Расширение графического файла .ps|eps|pdf определяется заданным типом устройства. Файл LaTeX, созданный с параметром ‘standalone’, можно непосредственно обрабатывать с помощью LaTeX. Файл, созданный без параметра ‘standalone’, предназначен для включения в другой документ LaTeX. В обоих случаях файл LaTeX содержит команду
\includegraphics, благодаря которой созданный графический файл автоматически включается при обработке файла LaTeX. Текст, записываемый в файл LaTeX, содержит строки точно в том виде, в котором они были заданы на графике. Если использовались специальные символы интерпретатора режима TeX, перед обработкой LaTeX файл необходимо отредактировать. В частности, специальные символы нужно заключить между знаками доллара ($ … $); возможно, потребуется также отредактировать другие символы, распознаваемые LaTeX (например, фигурные скобки). Устройство ‘pdflatex’ и все форматы ‘standalone’ недоступны с инструментарием Gnuplot. epscairo*pdfcairo*epscairolatex*pdfcairolatex*epscairolatexstandalone*pdfcairolatexstandalone*-
Создаёт вывод с помощью рендерера Cairo. Устройства
epscairoиpdfcairoявляются синонимами устройстваepsc. Варианты LaTeX создают файл LaTeX filename.tex для текстовых частей графика и файл изображения filename.(eps|pdf) для графической части. Варианты ‘standalone’ работают так же, как описанный выше вариант ‘epslatexstandalone’. canvas*-
Рисование на основе JavaScript на холсте HTML5, который можно просматривать в веб-браузере.
emfmeta-
Расширенный метафайл Microsoft
fig-
XFig. Для графического инструментария Gnuplot дополнительные параметры -textspecial или -textnormal (по умолчанию) позволяют управлять установкой специального флага для текста на фигуре.
latex*eepic*-
Окружение picture LaTeX и расширенное окружение picture.
tikztikzstandalone*-
Создаёт файл LaTeX в формате PGF/TikZ. Инструментарии на основе OpenGL создают файл PGF, а Gnuplot — файл TikZ. Устройство ‘tikzstandalone’ создаёт документ LaTeX, в который включён файл TikZ.
Растровые форматы
png-
Portable Network Graphics
jpgjpeg-
Изображение JPEG
tiftifftiffn-
Изображение TIFF со сжатием LZW (tif, tiff) или без сжатия (tiffn).
gif-
Изображение GIF
pbm-
PBMplus
dumb*-
ASCII-графика
Если устройство не указано, оно определяется по расширению файла; если имя файла отсутствует, вывод отправляется на принтер в формате PostScript.
-dghostscript_device-
Ghostscript поддерживает и другие устройства. Например:
ljet2p-
HP LaserJet IIP
pcx24b-
Формат файла PCX с 24-битным цветом
ppmФормат файла Portable Pixel Map
Чтобы просмотреть полный список доступных форматов и устройств, введите system ("gs -h").
При отправке вывода Ghostscript на принтер его размер определяется свойством фигуры
"papersize". При отправке вывода в файл размер определяется областью графика, заданной свойством фигуры"paperposition". -Gghostscript_command-
Задаёт команду для вызова Ghostscript. В Unix по умолчанию используется
"gs", а в Windows —"gswin32c". -TextAlphaBits=n-GraphicsAlphaBits=n-
Octave может создавать вывод для различных принтеров, растровых и векторных форматов с помощью Ghostscript. Для растрового вывода и печати Ghostscript применяет сглаживание, используя параметры TextAlphaBits и GraphicsAlphaBits. По умолчанию их значения равны соответственно 4 и 1. Допустимые значения N: 1, 2 или 4.
-no-append-file-extensionПри использовании этого параметра значение filename используется без изменений. Это означает, что расширение файла, соответствующее формату, автоматически не добавляется.
См. также: saveas, getframe, savefig, hgsave, orient, figure.
-
: saveas
(h, filename) -
: saveas
(h, filename, fmt) -
Сохраняет графический объект h в файл filename в графическом формате fmt.
Если h — дескриптор объекта-фигуры, сохраняется эта фигура. Если h — дескриптор другого графического объекта, сохраняется фигура, содержащая этот объект.
Можно использовать все форматы устройств, принимаемые функцией
print. Распространённые форматы:ofig-
Формат файла фигуры Octave (по умолчанию)
mfig-
Два файла: m-файл Octave filename.m, содержащий код для открытия файла фигуры Octave filename.ofig
ps-
PostScript
eps-
Encapsulated PostScript
pdf-
Portable Document Format
jpg-
Изображение JPEG
png-
Изображение Portable Network Graphics
emf-
Расширенный метафайл
tif-
Сжатое изображение TIFF
Если fmt не указан, он определяется по расширению filename. Если расширение отсутствует, используется формат по умолчанию
"ofig".clf (); surf (peaks); saveas (1, "figure1.png");
-
: orient
(orientation) -
: orient
(hfig, orientation) -
:
orientation =orient() -
:
orientation =orient(hfig) -
Запрашивает или задаёт ориентацию печати для фигуры hfig.
Допустимые значения orientation:
"portrait","landscape"и"tall".Параметр
"landscape"изменяет ориентацию так, чтобы ширина графика была больше его высоты. Также изменяется"paperposition", чтобы график занимал всю страницу, оставляя поля шириной 0,25 дюйма.Параметр
"tall"задаёт ориентацию"portrait"и размещает график на всей странице, оставляя поля шириной 0,25 дюйма.Параметр
"portrait"(по умолчанию) изменяет ориентацию так, чтобы высота графика была больше его ширины. Он также восстанавливает значение свойства"paperposition"по умолчанию.При вызове без аргументов возвращает текущую ориентацию печати.
Если аргумент hfig не указан, операция выполняется над текущей фигурой, возвращаемой функцией
gcf.
Команды print и saveas используются, когда работа над графиком завершена и вывод нужно подготовить для публикации. На промежуточных этапах часто удобнее сохранять графический объект и всю связанную с ним информацию, чтобы можно было легко менять цвета, пределы осей, стили маркеров и т. д. непосредственно в Octave. Для сохранения и повторного создания графического объекта можно использовать команды hgsave/hgload.
-
: hgsave
(filename) -
: hgsave
(h, filename) -
: hgsave
(h, filename, fmt) -
Сохраняет графический дескриптор или дескрипторы h в файл filename в формате fmt.
Если h не задан, используется текущая фигура, возвращаемая функцией
gcf.Если у filename нет расширения, к имени файла добавляется расширение по умолчанию .ofig.
Если fmt указан, он должен иметь одно из следующих значений:
- -binary, -float-binary
- -hdf5, -float-hdf5
- -V7, -v7, -7, -mat7-binary
- -V6, -v6, -6, -mat6-binary
- -text
- -zip, -z
По умолчанию используется формат -binary, позволяющий минимизировать объём хранения.
Примечание по программированию: для подготовки графики к окончательной публикации используйте
printилиsaveas. Если важно сохранить возможность редактировать фигуру как объект Octave, используйтеhgsave/hgload.См. также: hgload, hdl2struct, savefig, saveas, print.
-
:
h =hgload(filename) -
:
[h, old_prop] =hgload(filename, prop_struct) -
Загружает графические объекты из filename в вектор графических дескрипторов h.
Если у filename нет расширения, Octave попытается найти файл как с расширением по умолчанию .ofig, так и без него.
Если структура prop_struct задана, её элементы используются для переопределения свойств объектов верхнего уровня, сохранённых в filename, а сохранённые значения из filename записываются в old_prop. old_prop — это массив ячеек, соответствующий по размеру h; каждая ячейка содержит структуру с именами и значениями существующих свойств до их переопределения.
См. также: openfig, hgsave, struct2hdl.
- : openfig
-
: openfig
(filename) -
: openfig
(…, copies) -
: openfig
(…, visibility) -
:
h =openfig(…) -
Считывает сохранённые окна фигур из filename и возвращает графические дескрипторы h.
По умолчанию filename — это
"Untitled.fig". Если полный путь не указан, открывается первый найденный в пути загрузки файл. Если filename не найден и у него нет расширения, в пути загрузки выполняется поиск первого файла с расширением".fig"или".ofig", в указанном порядке.copies — необязательный аргумент, указывающий, следует ли создавать новую фигуру (
"new") или можно повторно использовать существующую фигуру ("reuse"). Существующую фигуру можно использовать повторно, если её свойство"FileName"соответствует указанному значению filename. При повторном использовании фигура становится активной и отображается поверх остальных фигур. Если фигура находилась за пределами экрана, она перемещается в видимую область. Значение copies по умолчанию —"new".visibility — необязательный аргумент, указывающий, следует ли показывать фигуру (
"visible") или нет ("invisible"). Если visibility задан как аргумент функцииopenfig, он переопределяет настройку видимости, сохранённую в filename.См. также: open, hgload, savefig, struct2hdl.
-
: savefig
() -
: savefig
(h) -
: savefig
(filename) -
: savefig
(h, filename) -
: savefig
(h, filename,"compact") -
Сохраняет окна графиков, заданные дескриптором(ами) графики h, в файл filename.
Если h не задан, используется текущий график, возвращаемый функцией
gcf.Если filename не задано, ему присваивается значение "Untitled.fig". Если filename не имеет расширения, будет добавлено расширение по умолчанию ".fig".
Если задан необязательный третий входной аргумент
"compact", данные будут сжаты для экономии места.См. также: hgsave, hdl2struct, openfig.
© 1996–2026 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v9.4.0/Printing-and-Saving-Plots.html