Next: , Previous: , Up: High-Level Plotting   [Contents][Index]

15.2.9 Printing and Saving Plots

The print command allows you to send plots to you printer and to save plots in a variety of formats. For example,

print -dpsc

prints the current figure to a color PostScript printer. And,

print -deps foo.eps

saves the current figure to an encapsulated PostScript file called foo.eps.

The current graphic toolkits produce very similar graphic displays but differ in their capability to display text and in print capabilities. In particular, the OpenGL based toolkits such as fltk and qt do not support the "interpreter" property of text objects. This means that when using OpenGL toolkits special symbols drawn with the "tex" interpreter will appear correctly on-screen but will be rendered with interpreter "none" when printing unless one of the standalone (see below) modes is used. These modes provide access to the pdflatex processor and therefore allow full use of LaTeX commands.

A complete example showing the capabilities of text printing using the -dpdflatexstandalone option is:

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$']);
xlabel ("x");
ylabel ("erf (x)");
title ("erf (x) with text annotation");
set (hf, "visible", "off");
print (hf, "plot15_7.pdf", "-dpdflatexstandalone");
set (hf, "visible", "on");
system ("pdflatex plot15_7");
open ("plot15_7.pdf");

The result of this example can be seen in Figure 15.7


Figure 15.7: Example of inclusion of text with use of -dpdflatexstandalone

: print ()
: print (options)
: print (filename, options)
: print (h, filename, options)

Print a plot, or save it to a file.

Both output formatted for printing (PDF and PostScript), and many bitmapped and vector image formats are supported.

filename defines the name of the output file. If the filename has no suffix, one is inferred from the specified device and appended to the filename. If no filename is specified, the output is sent to the printer.

h specifies the handle of the figure to print. If no handle is specified the current figure is used.

For output to a printer, PostScript file, or PDF file, the paper size is specified by the figure’s papersize property. The location and size of the image on the page are specified by the figure’s paperposition property. The orientation of the page is specified by the figure’s paperorientation property.

The width and height of images are specified by the figure’s paperposition(3:4) property values.

The print command supports many options:


Specify the handle, h, of the figure to be printed. The default is the current figure.


Set the printer name to which the plot is sent if no filename is specified.


Specify the command for calling Ghostscript. For Unix and Windows the defaults are "gs" and "gswin32c", respectively.


Color or monochrome output.


Force all lines to be solid or dashed, respectively.


Specify the orientation of the plot for printed output. For non-printed output the aspect ratio of the output corresponds to the plot area defined by the "paperposition" property in the orientation specified. This option is equivalent to changing the figure’s "paperorientation" property.


Octave is able to produce output for various printers, bitmaps, and vector formats by using Ghostscript. For bitmap and printer output anti-aliasing is applied using Ghostscript’s TextAlphaBits and GraphicsAlphaBits options. The default number of bits are 4 and 1 respectively. Allowed values for N are 1, 2, or 4.


The available output format is specified by the option device, and is one of:


PostScript (level 1 and 2, mono and color). The OpenGL-based toolkits always generate PostScript level 3.0.


Encapsulated PostScript (level 1 and 2, mono and color). The OpenGL-based toolkits always generate PostScript level 3.0.


Generate a LaTeX file filename.tex for the text portions of a plot and a file filename.(ps|eps|pdf) for the remaining graphics. The graphics file suffix .ps|eps|pdf is determined by the specified device type. The LaTeX file produced by the ‘standalone’ option can be processed directly by LaTeX. The file generated without the ‘standalone’ option is intended to be included from another LaTeX document. In either case, the LaTeX file contains an \includegraphics command so that the generated graphics file is automatically included when the LaTeX file is processed. The text that is written to the LaTeX file contains the strings exactly as they were specified in the plot. If any special characters of the TeX mode interpreter were used, the file must be edited before LaTeX processing. Specifically, the special characters must be enclosed with dollar signs ($ … $), and other characters that are recognized by LaTeX may also need editing (.e.g., braces). The ‘pdflatex’ device, and any of the ‘standalone’ formats, are not available with the Gnuplot toolkit.


Generate Cairo based output when using the Gnuplot graphics toolkit. The ‘epscairo’ and ‘pdfcairo’ devices are synonymous with the ‘epsc’ device. The LaTeX variants generate a LaTeX file, filename.tex, for the text portions of a plot, and an image file, filename.(eps|pdf), for the graph portion of the plot. The ‘standalone’ variants behave as described for ‘epslatexstandalone’ above.


Adobe Illustrator (Obsolete for Gnuplot versions > 4.2)


Javascript-based drawing on HTML5 canvas viewable in a web browser (only available for the Gnuplot graphics toolkit).






Microsoft Enhanced Metafile


XFig. For the Gnuplot graphics toolkit, the additional options -textspecial or -textnormal can be used to control whether the special flag should be set for the text in the figure. (default is -textnormal)


GIF image (only available for the Gnuplot graphics toolkit)


HP plotter language


JPEG image


LaTeX picture environment (only available for the Gnuplot graphics toolkit).




Portable network graphics




Portable document format


Scalable vector graphics


Generate a LaTeX file using PGF/TikZ format. The OpenGL-based toolkits create a PGF file while Gnuplot creates a TikZ file. The ‘tikzstandalone’ device produces a LaTeX document which includes the TikZ file (‘tikzstandalone’ and is only available for the Gnuplot graphics toolkit).

If the device is omitted, it is inferred from the file extension, or if there is no filename it is sent to the printer as PostScript.


Additional devices are supported by Ghostscript. Some examples are;


Produces pdf output from eps


HP LaserJet IIP


24-bit color PCX file format


Portable Pixel Map file format

For a complete list, type system ("gs -h") to see what formats and devices are available.

When Ghostscript output is sent to a printer the size is determined by the figure’s "papersize" property. When the output is sent to a file the size is determined by the plot box defined by the figure’s "paperposition" property.


Append PostScript or PDF output to a pre-existing file of the same type.


Resolution of bitmaps in pixels per inch. For both metafiles and SVG the default is the screen resolution; for other formats it is 150 dpi. To specify screen resolution, use "-r0".


Force a tight or loose bounding box for eps files. The default is loose.


Add a preview to eps files. Supported formats are:


Provide an interchange preview.


Provide a metafile preview.


Provide pict preview.


Provide a tiff preview.


Plot size in pixels for EMF, GIF, JPEG, PBM, PNG, and SVG. For PS, EPS, PDF, and other vector formats the plot size is in points. This option is equivalent to changing the size of the plot box associated with the "paperposition" property. When using the command form of the print function you must quote the xsize,ysize option. For example, by writing "-S640,480".


Use fontname and/or fontsize for all text. fontname is ignored for some devices: dxf, fig, hpgl, etc.

The filename and options can be given in any order.

Example: Print to a file using the pdf device.

figure (1);
clf ();
surf (peaks);
print figure1.pdf

Example: Print to a file using jpg device.

clf ();
surf (peaks);
print -djpg figure2.jpg

Example: Print to printer named PS_printer using ps format.

clf ();
surf (peaks);
print -dpswrite -PPS_printer

See also: saveas, hgsave, orient, figure.

: saveas (h, filename)
: saveas (h, filename, fmt)

Save graphic object h to the file filename in graphic format fmt.

fmt should be one of the following formats:




Encapsulated PostScript


JPEG Image


PNG Image


Enhanced Meta File


Portable Document Format

All device formats specified in print may also be used. If fmt is omitted it is extracted from the extension of filename. The default format is "pdf".

clf ();
surf (peaks);
saveas (1, "figure1.png");

See also: print, hgsave, orient.

: orient (orientation)
: orient (hfig, orientation)
: orientation = orient ()
: orientation = orient (hfig)

Query or set the print orientation for figure hfig.

Valid values for orientation are "portrait", "landscape", and "tall".

The "landscape" option changes the orientation so the plot width is larger than the plot height. The "paperposition" is also modified so that the plot fills the page, while leaving a 0.25 inch border.

The "tall" option sets the orientation to "portrait" and fills the page with the plot, while leaving a 0.25 inch border.

The "portrait" option (default) changes the orientation so the plot height is larger than the plot width. It also restores the default "paperposition" property.

When called with no arguments, return the current print orientation.

If the argument hfig is omitted, then operate on the current figure returned by gcf.

See also: print, saveas.

print and saveas are used when work on a plot has finished and the output must be in a publication-ready format. During intermediate stages it is often better to save the graphics object and all of its associated information so that changes—to colors, axis limits, marker styles, etc.—can be made easily from within Octave. The hgsave/hgload commands can be used to save and re-create a graphics object.

: hgsave (filename)
: hgsave (h, filename)
: hgsave (h, filename, fmt)

Save the graphics handle h to the file filename in the format fmt.

If unspecified, h is the current figure as returned by gcf.

When filename does not have an extension the default filename extension .ofig will be appended.

If present, fmt should be one of the following:

When producing graphics for final publication use print or saveas. When it is important to be able to continue to edit a figure as an Octave object, use hgsave/hgload.

See also: hgload, hdl2struct, saveas, print.

: h = hgload (filename)

Load the graphics object in filename into the graphics handle h.

If filename has no extension, Octave will try to find the file with and without the standard extension of .ofig.

See also: hgsave, struct2hdl.

Next: , Previous: , Up: High-Level Plotting   [Contents][Index]