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"); -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 восстанавливает многоугольники для предотвращения этих артефактов (особенно для 2D графиков).
- Прозрачность:
Позволяет печатать прозрачные графические объекты в формате 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-
Предоставить предварительный просмотр для обмена.
-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, если вам не нужна окружающая страница.Предупреждение: с опцией -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* 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 picture и расширенное окружение picture.
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, то сохраняется этот объект. Если h — это дескриптор другого графического объекта, то сохраняется содержащая его figure.
Могут быть использованы все форматы устройств, которые принимаются
print. Общие форматы:ofig-
Формат файла Octave figure (по умолчанию)
mfig-
Два файла: Octave m-файл filename.m, содержащий код для открытия файла Octave figure filename.ofig
ps-
PostScript
eps-
Encapsulated 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");
- : 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, он переопределяет параметр видимости, сохранённый в 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–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/v8.1.0/Printing-and-Saving-Plots.html