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поддерживает множество options:-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-
Возвращает M-на-N-на-3 RGB изображение фигуры. Размер изображения зависит от параметров форматирования. Это аналогично созданию скриншота графика, но параметры форматирования могут быть изменены, например, разрешение или черно-белый/цветной режим.
Пример: Получение пикселей изображения фигуры.
clf (); surf (peaks); rgb = print ("-RGBImage"); -opengl-painters-
Определяет, используется ли рендерер opengl (пиксельный) или painters (векторный). Это эквивалентно изменению свойства фигуры
"Renderer". Когда свойство фигуры"RendererMode"равно"auto"(по умолчанию), Octave будет использовать рендерер"opengl"для растровых форматов (например, JPEG) и"painters"для векторных форматов (например, PDF). Эти опции поддерживаются только для графического набора инструментов "qt". -svgconvert-
При использовании рендерера -painters, это включает другой инструмент-движок с улучшенными характеристиками:
- Обработка шрифтов:
-
Для интерпретаторов "none" и "tex" фактический шрифт встраивается в выходной файл, что позволяет печатать произвольные символы и шрифты во всех векторных форматах.
Строки, использующие интерпретатор
"latex", рендерятся с помощью объектов пути. Это выглядит хорошо, но обратите внимание, что текстовая информация (шрифт, символы…) теряется. - Упрощение вывода:
-
По умолчанию опция -painters рендерит объекты патчей и поверхностей с использованием наборов треугольников. Это может привести к артефактам анти-алиасинга при просмотре файла. Опция -svgconvert восстанавливает полигоны, чтобы избежать этих артефактов (особенно для 2-D фигур).
- Прозрачность:
Позволяет печатать прозрачные графические объекты в формате PDF. Для форматов PostScript присутствие любого прозрачного объекта приведет к растрированию вывода.
Предупреждение: -svgconvert может привести к неточному рендерингу объектов изображений.
-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-
Обеспечить предварительный просмотр обмена.
-metafile-
Обеспечить предварительный просмотр метафайла.
-pict-
Предоставить предварительный просмотр pict.
-tiffПредоставить предварительный просмотр TIFF.
-append-
Добавить выходные данные PostScript или PDF в существующий файл того же типа.
-Ffontname-Ffontname:size-F:size-
Использовать fontname и/или fontsize для всего текста. fontname игнорируется для некоторых устройств: fig и т.д.
-ddevice
-
Доступный формат вывода задается опцией device и может быть одним из следующих (устройства, помеченные
'*', доступны только с инструментом Gnuplot):Векторные форматы
svg-
Scalable Vector Graphics.
pdfpdfcrop-
Portable Document Format. Устройство
pdfформатирует рисунок для печати на бумаге. Размер окружающего листа и положение рисунка на листе определяются свойствами paper* figure.Используйте
pdfcrop, если вам не нужен окружающий лист.По умолчанию PDF наследует те же ограничения, что и PostScript. Для улучшенного вывода с полной поддержкой текста и базовой прозрачностью используйте опцию -svgconvert.
eps(2)epsc(2)-
Встроенный PostScript (уровни 1 и 2, монохромный и цветной).
Графические инструменты на основе OpenGL всегда генерируют PostScript уровня 3.0. Они имеют ограниченную поддержку текста, если не используется опция -svgconvert. Ограничения включают использование только символов ASCII (например, нет греческих букв) и поддержку только трех базовых шрифтов PostScript: Helvetica (по умолчанию), Times или Courier. Любой другой шрифт будет заменен на Helvetica.
ps(2)psc(2)-
То же, что
eps, за исключением того, что рисунок форматируется для печати на бумаге. Размер окружающего листа и положение рисунка на листе определяются свойствами paper* figure. 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 Enhanced Metafile
fig-
XFig. Для графического инструментария Gnuplot дополнительные опции -textspecial или -textnormal (по умолчанию) могут использоваться для управления тем, устанавливается ли специальный флаг для текста на рисунке.
latex*eepic*-
Окружение рисунка LaTeX и расширенное окружение рисунка.
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=nOctave может генерировать вывод для различных принтеров, битовых карт и векторных форматов с помощью Ghostscript. Для битового и принтерного вывода антиалиасинг применяется с использованием опций Ghostscript TextAlphaBits и GraphicsAlphaBits. По умолчанию количество битов составляет 4 и 1 соответственно. Допустимые значения для N равны 1, 2 или 4.
См. также: saveas, getframe, savefig, hgsave, orient, figure.
-
- : saveas (h, filename) ¶
- : saveas (h, filename, fmt) ¶
-
Сохраняет графический объект h в файл filename в графическом формате fmt.
Если h — это дескриптор объекта figure, этот объект figure сохраняется. Если h — это дескриптор другого графического объекта, сохраняется содержащая его figure.
Можно использовать все форматы устройств, принимаемые
print. Общие форматы:ofig-
Формат файла figure Octave (по умолчанию)
mfig-
Два файла: файл Octave m-file filename.m, содержащий код для открытия файла Octave figure filename.ofig
ps-
PostScript
eps-
Встроенный PostScript
pdf-
Portable Document Format
jpg-
JPEG Image
png-
Изображение Portable Network Graphics
emf-
Enhanced MetaFile
tif-
TIFF Image, сжатый
Если 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он перезаписывает значение свойства visibility, сохраненное в 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–2022 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/v7.2.0/Printing-and-Saving-Plots.html