Spec-Zone.ru › Octave 7

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 поддерживает множество 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
END_OF_DOCUMENT_MARKER

Доступный формат вывода задается опцией device и может быть одним из следующих (устройства, помеченные '*', доступны только с инструментом Gnuplot):

Векторные форматы

svg

Scalable Vector Graphics.

pdf
pdfcrop

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.

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 Enhanced Metafile

fig

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

latex*
eepic*

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

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.

См. также: 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");

См. также: 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 он перезаписывает значение свойства 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

Spec-Zone.ru

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