dev2                package:grDevices                R Documentation

_C_o_p_y _G_r_a_p_h_i_c_s _B_e_t_w_e_e_n _M_u_l_t_i_p_l_e _D_e_v_i_c_e_s

_D_e_s_c_r_i_p_t_i_o_n:

     'dev.copy' copies the graphics contents of the current device to
     the device specified by 'which' or to a new device which has been
     created by the function specified by 'device' (it is an error to
     specify both 'which' and 'device').  (If recording is off on the
     current device, there are no contents to copy: this will result in
     no plot or an empty plot.) The device copied to becomes the
     current device.

     'dev.print' copies the graphics contents of the current device to
     a new device which has been created by the function specified by
     'device' and then shuts the new device.

     'dev.copy2eps' is similar to 'dev.print' but produces an EPSF
     output file, in portrait orientation ('horizontal = FALSE')

     'dev.control' allows the user to control the recording of graphics
     operations in a device.  If 'displaylist' is '"inhibit"'
     ('"enable")' then recording is turned off (on). It is only safe to
     change this at the beginning of a plot (just before or just after
     a new page).  Initially recording is on for screen devices, and
     off for print devices.

_U_s_a_g_e:

     dev.copy(device, ..., which = dev.next())
     dev.print(device = postscript, ...)
     dev.copy2eps(...)
     dev.control(displaylist = c("inhibit", "enable"))

_A_r_g_u_m_e_n_t_s:

  device: A device function (e.g., 'x11', 'postscript', ...)

     ...: Arguments to the 'device' function above. For 'dev.print',
          this includes 'which' and by default any 'postscript'
          arguments.

   which: A device number specifying the device to copy to

displaylist: A character string: the only valid values are '"inhibit"'
          and '"enable"'.

_D_e_t_a_i_l_s:

     Note that these functions copy the _device region_ and not a plot:
     the background colour of the device surface is part of what is
     copied. Most screen devices default to a transparent background,
     which is probably not what is needed when copying to a device such
     as 'png'.

     For 'dev.copy2eps', 'width' and 'height' are taken from the
     current device unless otherwise specified.  If just one of 'width'
     and 'height' is specified, the other is adjusted to preserve the
     aspect ratio of the device being copied.  The default file name is
     'Rplot.eps'.

     The default for 'dev.print' is to produce and print a postscript
     copy, if 'options("printcmd")' is set suitably.

     'dev.print' is most useful for producing a postscript print (its
     default) when the following applies.  Unless 'file' is specified,
     the plot will be printed.  Unless 'width', 'height' and
     'pointsize' are specified the plot dimensions will be taken from
     the current device, shrunk if necessary to fit on the paper.
     ('pointsize' is rescaled if the plot is shrunk.)  If 'horizontal'
     is not specified and the plot can be printed at full size by
     switching its value this is done instead of shrinking the plot
     region.

     If 'dev.print' is used with a specified 'device' (even
     'postscript') it sets the width and height in the same way as
     'dev.copy2eps'.  This will not be appropriate unless the device
     specifies dimensions in inches, in particular not for 'png' and
     'jpeg'.

_V_a_l_u_e:

     'dev.copy' returns the name and number of the device which has
     been copied to.

     'dev.print' and 'dev.copy2eps' return the name and number of the
     device which has been copied from.

_N_o_t_e:

     Most devices (including all screen devices) have a display list
     which records all of the graphics operations that occur in the
     device. 'dev.copy' copies graphics contents by copying the display
     list from one device to another device.  Also, automatic redrawing
     of graphics contents following the resizing of a device depends on
     the contents of the display list.

     After the command 'dev.control("inhibit")', graphics operations
     are not recorded in the display list so that 'dev.copy' and
     'dev.print' will not copy anything and the contents of a device
     will not be redrawn automatically if the device is resized.

     The recording of graphics operations is relatively expensive in
     terms of memory so the command 'dev.control("inhibit")' can be
     useful if memory usage is an issue.

_S_e_e _A_l_s_o:

     'dev.cur' and other 'dev.xxx' functions

_E_x_a_m_p_l_e_s:

     ## Not run: 
     x11()
     plot(rnorm(10), main="Plot 1")
     dev.copy(device=x11)
     mtext("Copy 1", 3)
     dev.print(width=6, height=6, horizontal=FALSE) # prints it
     dev.off(dev.prev())
     dev.off()
     ## End(Not run)

