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 отображает объекты патчей и поверхностей с помощью наборов треугольников. Это может привести к артефактам антиалиасинга при просмотре файла. Опция -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.
pdfpdfcrop-
Формат 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. 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=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");
-
: 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/v9.2.0/Printing-and-Saving-Plots.html