Spec-Zone.ru › Octave 9

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

extended

Рисунок 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

Масштабируемая векторная графика.

pdf
pdfcrop

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

pslatex
epslatex
pdflatex
pslatexstandalone
epslatexstandalone
pdflatexstandalone

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

emf
meta

Расширенный метафайл Microsoft

fig

XFig. Для графического инструментария Gnuplot дополнительные параметры -textspecial или -textnormal (по умолчанию) позволяют управлять установкой специального флага для текста на фигуре.

latex*
eepic*

Окружение picture LaTeX и расширенное окружение picture.

tikz
tikzstandalone*

Создаёт файл LaTeX в формате PGF/TikZ. Инструментарии на основе OpenGL создают файл PGF, а Gnuplot — файл TikZ. Устройство ‘tikzstandalone’ создаёт документ LaTeX, в который включён файл TikZ.

Растровые форматы

png

Portable Network Graphics

jpg
jpeg

Изображение JPEG

tif
tiff
tiffn

Изображение 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");

См. также: print, savefig, hgsave, orient.

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

Команды 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API