Spec-Zone.ru › Octave 9

Далее: Взаимодействие с графиками, Предыдущее: Использование свойства "interpreter", Вверх: Высокоуровневое построение графиков [Оглавление][Индекс]

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");
-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 отображает объекты патчей и поверхностей с помощью наборов треугольников. Это может привести к артефактам антиалиасинга при просмотре файла. Опция -svgconvert восстанавливает многоугольники, чтобы избежать этих артефактов (особенно для двумерных графиков).

Прозрачность:

Позволяет печатать прозрачные графические объекты в формате PDF. Для форматов PostScript наличие любого прозрачного объекта приведет к растрированию вывода.

Предупреждение: Если Octave был скомпилирован с версией Qt ранее, чем 5.13, -svgconvert может привести к неточному отображению объектов изображений.

-polymerge
-nopolymerge
-polymerge-all

При использовании инструмента заднего плана на основе SVG -svgconvert грани отображаются как треугольники. В некоторых случаях некоторые просмотрщики могут отображать тонкие линии, где эти треугольники имеют общую сторону. Эти опции управляют тем, объединяются ли все треугольники, имеющие общие стороны, в многоугольники (-polymerge-all, что может занять некоторое время для графиков, состоящих из многих треугольников, — включая маркеры линий), объединяются только последовательные многоугольники (-polymerge) или треугольники вообще не объединяются (-no-polymerge). По умолчанию объединяются только последовательные треугольники, имеющие общую сторону, если напечатанная фигура не содержит графических объектов патчей или поверхностей, в этом случае объединяются все треугольники, имеющие общую сторону.

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

pdf
pdfcrop

Формат Portable Document Format. Устройство pdf форматирует рисунок для печати на бумаге. Размер страницы окружения и позиция рисунка внутри страницы определяются свойствами paper* figure.

Используйте pdfcrop, если не нужна окружающая страница.

Внимание: с опцией -nosvgconvert PDF наследует те же ограничения, что и PostScript (ограниченный набор шрифтов и отсутствие прозрачности).

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 picture и расширенное окружение 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 — это дескриптор объекта figure, сохраняется этот объект figure. Если h — это дескриптор другого графического объекта, сохраняется фигура, содержащая этот объект.

Можно использовать все форматы устройств, поддерживаемые print. Общие форматы:

ofig

Формат файла Octave figure (по умолчанию)

mfig

Два файла: Octave m-файл filename.m содержащий код для открытия файла Octave figure filename.ofig

ps

PostScript

eps

Встроенный PostScript

pdf

Portable Document Format

jpg

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

png

Изображение Portable Network Graphics

emf

Enhanced MetaFile

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.

Далее: Взаимодействие с графиками, Предыдущее: Использование свойства "interpreter", Вверх: Визуализация высокого уровня [Оглавление][Индекс]

© 1996–2023 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.2.0/Printing-and-Saving-Plots.html

Spec-Zone.ru

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