The SET_PLOT procedure sets the output device used by the IDL Direct Graphics procedures. Keyword parameters control how the color tables are transferred to the newly selected graphics device. SET_PLOT performs the following actions:

  • It sets the read-only system variable !D to reflect the configuration of the new device.
  • It sets the default color !P.COLOR to the maximum color index minus one or, in the case of devices with white backgrounds, such as PostScript, to 0 (black).
  • If the COPY keyword is set, the device color tables are copied directly from IDL’s internal color tables. If the new device’s color tables contain more indices than those of the old device, the new device’s tables are not completely filled.
  • If the INTERPOLATE keyword is set, the internal color tables are interpolated to fill the range of the new device.
  • It sets the clipping rectangle to the entire device surface.

Note: After calling SET_PLOT to change graphics devices, the scaling contained in the axis structures !X, !Y, and !Z is invalid. Any routines that rely on data coordinates should not be called until a new data coordinate system has been established. Be careful when switching devices as the number of color indices frequently differs between devices. When in doubt, reload the color table of the new device explicitly.





A scalar string containing the name of the device to use. The case of Device is ignored by IDL. To get the list of supported device names, see the first line of output from the HELP, /DEVICE command.



Set this keyword to copy the device’s color table from the internal color table, preserving the current color mapping. The default is not to load the color table upon selection.

Note: Unless this keyword is set, IDL’s internal color tables will incorrectly reflect the state of the device’s color tables until they are reloaded by TVLCT or the LOADCT procedure. Assuming that the previously-selected device’s color table contains M elements, and the new device’s color table contains N elements, then the minimum of M and N elements are loaded.


Set this keyword to indicate that the current contents of the internal color table should be interpolated to cover the range of the newly-selected device. Otherwise, the internal color tables are not changed.


Change the IDL graphics device to PostScript by entering:


After changing the plotting device, all graphics commands are sent to that device until changed again by another use of the SET_PLOT routine.

Color Tables—Switching Between Devices

Use the SET_PLOT procedure to direct the graphics output to different devices. Because devices have differing capabilities and not all are capable of representing the same number of colors, the treatment of color tables when switching devices is somewhat tricky.

After selecting a new graphics output device, SET_PLOT will perform one of the following color-table actions depending upon which keyword parameters are specified:

  • The default is to do nothing. The problem with this treatment is that the internal color tables incorrectly reflect the state of the device’s color tables until TVLCT is called (usually via LOADCT).
  • If the COPY keyword parameter is set, the internal color tables are copied into the device. This is straightforward if both devices have the same number of color indices. If the new device has more colors than the old device, some color indices will be invalid. If the new device has less colors than the old, not all the colors are saved. This is the preferred method if you are displaying graphics and each color index is explicitly loaded.
  • When the INTERPOLATE keyword is set, the new device’s table is loaded by interpolating the old color table to span the new number of color indices. This method works best when displaying images with continuous color ranges.

Version History