15.2.9 Печать и сохранение графиков
Команда print позволяет отправлять графики на принтер и сохранять их в различных форматах. Например,
print -dpsc
печатает текущую фигуру на цветном PostScript-принтере. А,
print -deps foo.eps
сохраняет текущую фигуру в файл encapsulated PostScript под именем foo.eps.
Текущие графические инструменты генерируют очень похожие графические отображения, но различаются по возможностям отображения необычных текстов и их печати. В целом, интерпретатор "tex" (по умолчанию) является лучшим универсальным исполнителем как для отображения на экране, так и для печати. Однако, для воспроизведения сложных формул текста предпочтительнее использовать интерпретатор "latex". Интерпретатор "latex" не будет отображать символы на экране, но печатный результат будет правильным. При печати используйте один из standalone вариантов, которые предоставляют полный доступ к командам 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-
Установите имя принтера, на который будет отправлен график, если не указан имя файла.
Пример: Распечатать на принтер с именем PS_printer в формате PostScript.
clf (); surf (peaks); print -dpswrite -PPS_printer
-RGBImage-
Возвращает RGB-изображение фигуры размером M на N на 3. Размер изображения зависит от параметров форматирования. Это аналогично созданию скриншота графика, но параметры форматирования могут быть изменены, например, разрешение или монохром/цвет.
Пример: Получить пиксели изображения фигуры.
clf (); surf (peaks); rgb = print ("-RGBImage"); -opengl-painters-
Указывает, используется ли рендерер OpenGL (на основе пикселей) или Painters (на основе векторов). Это эквивалентно изменению свойства фигуры
"Renderer". Когда свойство фигурыRendererModeравно"auto", Octave будет использовать рендерер"opengl"для растровых форматов (например, JPEG) и"painters"для векторных форматов (например, PDF). Эти параметры поддерживаются только для графического пакета «qt». -svgconvert-
Для графических пакетов на основе OpenGL это позволяет использовать другую инструментальную цепочку с улучшенными характеристиками. Инструментальная цепочка добавляет поддержку печати произвольных символов и шрифтов в выходных файлах PDF; она избегает некоторых артефактов анти-алиасинга при отрисовке объектов patch и surface (особенно для 2-мерных сцен); и она поддерживает прозрачность линий, объектов patch и surface.
Этот параметр влияет только на выходные файлы PDF, если он не объединен с параметром -painters, в этом случае затронуты также растровые выходы.
Предупреждение: -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". -loose-tight-
Принудительное использование узкой или широкой границы для EPS-файлов. По умолчанию используется широкая.
-preview-
Добавить предварительный просмотр к EPS-файлам. Поддерживаемые форматы:
-interchange-
Предоставление предварительного просмотра обмена.
-metafile-
Предоставление предварительного просмотра метафайла.
-pict-
Предоставление предварительного просмотра pict.
-tiffПредоставление предварительного просмотра TIFF.
-append-
Добавление выходных данных PostScript или PDF к существующему файлу того же типа.
-Ffontname-Ffontname:size-F:size-
Использование fontname и/или fontsize для всего текста. fontname игнорируется для некоторых устройств: dxf, fig, hpgl и т. д.
-ddevice-
Доступный формат вывода задается параметром device и может быть одним из следующих (устройства, помеченные звёздочкой «*», доступны только с графическим пакетом Gnuplot):
Векторные форматы
pdfpdfcrop-
Формат Portable Document Format. Устройство
pdfcropудаляет стандартные окружающие страницы.Графические пакеты на основе OpenGL имеют ограниченную поддержку текста. Ограничения включают использование только символов ASCII (например, без греческих букв) и поддержку только трех основных шрифтов PostScript: Helvetica (по умолчанию), Times или Courier. Любой другой шрифт будет заменён на Helvetica.
Для улучшенного вывода с полной поддержкой текста и базовой прозрачностью используйте параметр -svgconvert.
psps2pscpsc2-
PostScript (уровень 1 и 2, монохромный и цветной). Графические пакеты на основе OpenGL всегда генерируют PostScript уровня 3.0 и имеют ограниченную поддержку текста.
epseps2epscepsc2-
Encapsulated PostScript (уровень 1 и 2, монохромный и цветной). Графические пакеты на основе OpenGL всегда генерируют PostScript уровня 3.0 и имеют ограниченную поддержку текста.
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» выше.
svg-
Scalable Vector Graphics
canvas*-
Рисование на основе Javascript на HTML5-холсте, отображаемом в веб-браузере.
cdr*corel*-
CorelDraw
cgm*-
Computer Graphics Metafile, Версия 1, ANSI X3.122-1986
dxf-
AutoCAD
emfmeta-
Microsoft Enhanced Metafile
fig-
XFig. Для графического пакета Gnuplot дополнительные параметры -textspecial или -textnormal могут быть использованы для управления тем, установлен ли специальный флаг для текста на графике. (по умолчанию -textnormal)
hpgl-
Язык HP plotter
illaifm-
Adobe Illustrator (устарело для версий Gnuplot > 4.2)
latex*eepic*-
Окружение LaTeX для рисунков и расширенное окружение для рисунков.
mf*-
Metafont
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").При выводе в принтер размер определяется свойством фигуры
"papersize". При выводе в файл размер определяется областью построения, определённой свойством фигуры"paperposition". -Gghostscript_command-
Укажите команду для вызова Ghostscript. Для Unix по умолчанию это
"gs", а для Windows —"gswin32c". -TextAlphaBits=n-GraphicsAlphaBits=nOctave может производить вывод на различные принтеры, в растровые и векторные форматы с использованием Ghostscript. Для растрового и принтерного вывода применяется антиалиасинг с использованием опций Ghostscript TextAlphaBits и GraphicsAlphaBits. По умолчанию количество битов равно 4 и 1 соответственно. Разрешённые значения для N составляют 1, 2 или 4.
-
- saveas (h, filename)
- saveas (h, filename, fmt)
-
Сохранить графический объект h в файл filename в графическом формате fmt.
Можно использовать все форматы устройств, поддерживаемые
print. Распространённые форматы:ps-
PostScript
eps-
Встроенный PostScript
pdf-
Формат Portable Document
jpg-
Изображение JPEG
png-
Изображение Portable Network Graphics
emf-
Расширенный метафайл
tif-
Изображение TIFF, сжатое
Если fmt опущен, он извлекается из расширения filename. По умолчанию, если нет расширения, используется
"pdf".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 и вернуть дескриптор(ы) графического(иx) объекта(ов) 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")
-
Сохранить окна фигур, заданных дескрипторами(ами) графического(иx) объекта(ов) 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/v5.2.0/Printing-and-Saving-Plots.html