Back to library index.
Package graph-plotout (in graph.i) - controlling plot windows and files
Index of documented functions or symbols:
DOCUMENT animate or animate, 0/1 without any arguments, toggles animation mode; with argument 0, turns off animation mode, with argument 1 turns on animation mode. In animation mode, the X window associated with a graphics window is actually an offscreen pixmap which is bit-blitted onscreen when an fma command is issued. This is confusing unless you are actually trying to make a movie, but results in smoother animation if you are. Generally, you should turn animation on, run your movie, then turn it off.
DOCUMENT current_mouse(); or current_mouse(win); or focused_window(); or has_mouse(); or has_mouse(win); The function current_mouse returns the pointer position in the graphics window with pointer focus as an array of double's in the form [X,Y,SYS,WIN] where X and Y are the pointer coordinates in the coordinate system SYS and WIN is the number of the graphics window. If no graphics window currently has the pointer focus or if WIN is specified but does not match the graphics window with pointer focus, the result is empty. The function focused_window returns the number of the graphics window with pointer focus, or -1 if none. The function has_mouse with a void argument returns true if any Yorick graphics window has the pointer focus. If WIN is specified, the function has_mouse returns true if graphics window WIN has the pointer focus. Note that the window which has the pointer focus may be different from the so-called current window to which graphics commands are directed. The built-in functions `window' and `current_window' (which see) can be used to set/query the current window.
SEE ALSO: current_window, mouse, window
DOCUMENT n= current_window() returns the number of the current graphics window, or -1 if none.
DOCUMENT eps, name writes the picture in the current graphics window to the Encapsulated PostScript file NAME+".eps" (i.e.- the suffix .eps is added to NAME). This function requires ghostscript. Any hardcopy file associated with the current window is first closed, but the default hardcopy file is unaffected. As a side effect, legends are turned off and color table dumping is turned on for the current window. The external variable EPSGS_CMD contains the command to start ghostscript.
SEE ALSO: pdf, png, jpeg, epsi, hcps, window, fma, hcp, no_window, plg
DOCUMENT eps, name writes the picture in the current graphics window to the Encapsulated PostScript file NAME+".epsi" (i.e.- the suffix .epsi is added to NAME). The eps function requires the ps2epsi utility which comes with the project GNU Ghostscript program. Any hardcopy file associated with the current window is first closed, but the default hardcopy file is unaffected. As a side effect, legends are turned off and color table dumping is turned on for the current window. The external variable PS2EPSI_FORMAT contains the format for the command to start the ps2epsi program.
SEE ALSO: eps, hcps, window, fma, hcp, hcp_finish, plg, no_window
DOCUMENT fma frame advance the current graphics window. The current picture remains displayed in the associated X window until the next element is actually plotted.
SEE: current_mouse
SEE: current_mouse
DOCUMENT hcp hcpon hcpoff The hcp command sends the picture displayed in the current graphics window to the hardcopy file. (The name of the default hardcopy file can be specified using hcp_file; each individual graphics window may have its own hardcopy file as specified by the window command.) The hcpon command causes every fma (frame advance) command to do and implicit hcp, so that every frame is sent to the hardcopy file. The hcpoff command reverts to the default "demand only" mode.
SEE: hcp
SEE: hcp
DOCUMENT hcps, name writes the picture in the current graphics window to the PostScript file NAME+".ps" (i.e.- the suffix .ps is added to NAME). Legends are not written, but the palette is always dumped.
SEE ALSO: hcps, window, fma, hcp, hcp_finish, plg, no_window
DOCUMENT hcp_file, filename, dump=0/1, ps=0/1 sets the default hardcopy file to FILENAME. If FILENAME ends with ".cgm", the file will be a binary CGM, otherwise it will be a Postscript file. By default, the hardcopy file name will be "Aa00.ps", or "Ab00.ps" if that exists, or "Ac00.ps" if both exist, and so on. The default hardcopy file gets hardcopy from all graphics windows which do not have their own specific hardcopy file (see the window command). If the dump keyword is present and non-zero, the current palette will be dumped at the beginning of each frame of the default hardcopy file (default behavior). With dump=0, all colors are converted to a gray scale, and the output files are smaller because no palette information is included. Use ps=0 to make "Aa00.cgm", "Ab00.cgm", etc by default instead of Postscript. The dump= and ps= settings persist until explicitly changed by a second call to hcp_file; the dump=1 setting becomes the default for the window command as well.
DOCUMENT filename= hcp_finish() or filename= hcp_finish(n) closes the current hardcopy file and returns the filename. If N is specified, closes the hcp file associated with window N and returns its name; use hcp_finish(-1) to close the default hardcopy file.
DOCUMENT hcp_out or hcp_out, n finishes the current hardcopy file and sends it to the printer. If N is specified, prints the hcp file associated with window N; use hcp_out,-1 to print the default hardcopy file. Unless the KEEP keyword is supplied and non-zero, the file will be deleted after it is processed by gist and sent to lpr.
SEE ALSO: window, fma, hcp, hcp_finish, plg
DOCUMENT jpeg, name writes the picture in the current graphics window to the JPEG file NAME+".jpg" (i.e.- the suffix .jpg is added to NAME). The jpeg file is intended to be imported into MS PowerPoint or other commercial presentation software. This function starts ghostscript using the EPSGS_CMD variable. With the gray=1 keyword, you get the jpeggray ghostscript device, otherwise jpeg. The default yorick graphics window is 6 inches square, and by default jpeg produces 72 dpi (dot per inch) output. You can change this with the dpi= keyword; dpi=300 is extremely high resolution.
DOCUMENT keybd_focus, on_off By default, graphics windows set a window manager hint which allows them to accept keyboard focus. With ON_OFF zero, that hint will not be set when a new graphics window is created. This causes the window manager to refuse to offer keyboard focus to the graphics window -- very desirable, since it can't accept keyboard input anyway. With fvwm, for example, this means keyboard focus can stay in the terminal window even when you are mouse zooming the graphics window. However, many window managers confuse colormap focus with keyboard focus, so if you set the private=1 colormap in the window function, you may not be able to convince the window manager to give the graphics window colormap focus since it won't give it keyboard focus. Weird.
DOCUMENT no_window no_window, hcpname no_window, "" Set up a graphics window with no interactive display, similar to window, display="", hcp=hcpname, dump=1, legends=0; You can optionally supply a filename HCPNAME; if you do not, the default filename will be "no_window". If HCPNAME is "" or string(0), this graphics window is killed, and the special behavior of the eps and other commands (see below) is restored to normal. Use no_window if you do not want to create an interactive graphics window, for example when yorick is running in batch mode and is not connected to any interactive graphics devices, causing the code to crash when it tries to create an interactive window. As a convenience, no_window accepts a style= keyword, which it will pass along to the window command. If you need to set other window properties, call the window function after no_window. Additionally, the no_window function changes the behavior of the single picture commands hcps, eps, pdf, png, jpeg (and other functions based on the hcps command) to write the current drawing to the specified file, then reissue a non-displaying window command. The effect is to simplify making a sequence of plots in batch mode without creating any interactive graphics window. If you want to write the whole sequence into a single .ps file, you use the no_window function to set the filename, then hcp or hcp_on to dump frames into the file. Alternatively, if you need to write one file per frame (for example one png per picture to include in slides using presentation software), you can call no_window, then issue the png (or similar) command just before advancing to the next frame. (Unfortunately, you cannot do both -- either you are writing all the frames into one ps file, or you are writing one frame per file. Calling the single frame function will close the postscript file.)
DOCUMENT palette, filename or palette, source_window_number or palette, red, green, blue, ntsc=1/0 or palette, red, green, blue, gray or palette, red, green, blue, query=1 or palette, red, green, blue, gray, query=1 sets (or retrieves with query=1) the palette for the current graphics window. The FILENAME is the name of a Gist palette file; the standard palettes are "earth.gp", "stern.gp", "rainbow.gp", "heat.gp", "gray.gp", and "yarg.gp". Use the maxcolors keyword in the pldefault command to put an upper limit on the number of colors which will be read from the palette in FILENAME. In the second form, the palette for the current window is copied from the SOURCE_WINDOW_NUMBER. If the X colormap for the window is private, there will still be two separate X colormaps for the two windows, but they will have the same color values. In the third form, RED, GREEN, and BLUE are 1-D arrays of the same length specifying the palette you wish to install; the values should vary between 0 and 255, and your palette should have no more than 240 colors. If ntsc=0, monochrome devices (such as most laser printers) will use the average brightness to translate your colors into gray; otherwise, the NTSC (television) averaging will be used (.30*RED+.59*GREEN+.11*BLUE). Alternatively, you can specify GRAY explicitly. Ordinarily, the palette is not dumped to a hardcopy file (color hardcopy is still rare and expensive), but you can force the palette to dump using the window or hcp_file commands. See the dump= keyword for the hcp_file and window commands if you are having trouble getting color in your hardcopy files.
DOCUMENT pdf, name writes the picture in the current graphics window to the Adobe PDF file NAME+".pdf" (i.e.- the suffix .pdf is added to NAME). The pdf file is intended to be imported into MS PowerPoint or other commercial presentation software, or into in pdftex or pdflatex documents; it is cropped. The result should be equivalent to running the epstopdf utility (which comes with TeX, see www.tug.org) on the eps file produced by the eps command. This function requires ghostscript. Any hardcopy file associated with the current window is first closed, but the default hardcopy file is unaffected. As a side effect, legends are turned off and color table dumping is turned on for the current window. The external variable EPSGS_CMD contains the command to start ghostscript.
SEE ALSO: eps, png, jpeg, hcps, window, fma, hcp, no_window, plg
DOCUMENT plsys, n or plsys(n) or plsys() sets the current coordinate system to number N in the current graphics window. If N equals 0, subsequent elements will be plotted in absolute NDC coordinates outside of any coordinate system. The default style sheet "work.gs" defines only a single coordinate system, so the only other choice is N equal 1. You can make up your own style sheet (using a text editor) which defines mulitple coordinate systems. You need to do this if you want to display four plots side by side on a single page, for example. The standard style sheets "work2.gs" and "boxed2.gs" define two overlayed coordinate systems with the first labeled to the right of the plot and the second labeled to the left of the plot. When using overlayed coordinate systems, it is your responsibility to ensure that the x-axis limits in the two systems are identical. Return value is coordinate system setting before this call; input n may be nil to retrieve this without changing it. Return value can be <0 if the information is unavailable for some reason.
DOCUMENT png, name writes the picture in the current graphics window to the PNG file NAME+".png" (i.e.- the suffix .png is added to NAME). The png file is intended to be imported into MS PowerPoint or other commercial presentation software. This function starts ghostscript using the EPSGS_CMD variable. With the gray=1 keyword, you get the pnggray ghostscript device, otherwise png16m. The default yorick graphics window is 6 inches square, and by default png produces 300 dpi (dot per inch) output. You can change this with the dpi= keyword; dpi=72 is screen resolution. Finally, the smooth=1 keyword sets the TextAlphaBits and GraphicsAlphaBits postscript variables to 2; smooth=2 sets them to 4, which produce increasing levels of anti-aliasing. With smooth=1 or smooth=2, you can probably get away with lower dpi. The default is smooth=0. (Arguably, smooth=2 and dpi=72 or 100 should be the defaults.) The default values of the keywords can be changed by setting the corresponding extern variable png_dpi, png_gray, or png_smooth.
DOCUMENT png_dpi, png_gray, png_smooth You can set these variables to change the default values of the dpi=, gray=, and smooth= keywords for the png command
SEE ALSO: png
SEE: png_dpi
SEE: png_dpi
DOCUMENT raw_style: get_style, set_style, read_style, write_style #include "style.i" alternatives to the style= keyword of the window command which allow the interpreter to set or get all the details of the window style. Include "style.i" and read the help for get_style.
DOCUMENT old = set_gpath(gist_path) set path (colon delimited directories) for Gist graphics package, returning old path. GIST_PATH nil or string(0) just returns old.
DOCUMENT port= viewport(); returns [xmin,xmax,ymin,ymax] of the current viewport (or 0,0,0,0 if currently plotting to system 0) in NDC coordinates.
DOCUMENT window, n, display="host:server.screen", dpi=100/75, wait=0/1, private=0/1, hcp="hcp_filename", dump=0/1, legends=1/0, style="style_sheet_filename", width=wpixels,height=hpixels,rgb=1, parent=id,xpos=x_in_parent,ypos=y_in_parent select window N as the current graphics output window. N may range from 0 to 63, inclusive. Each graphics window corresponds to an X window, and optionally has its own associated hardcopy file. If N is omitted, it defaults to the current coordinate system. The X window will appear on your default display at 75 dpi, unless you specify the display and/or dpi keywords. A dpi=100 X window is larger than a dpi=75 X window; both represent the same thing on paper. Use display="",hcp="filename" to create a graphics window which has no associated X window, but instead plots to a hardcopy file (you should do this if you want to make plots in a non-interactive batch mode). By default, if the X window needs to be created, the graphics area will be 450x450 pixels if dpi=75, or 600x600 pixels if dpi=100, representing a 6x6 inch square on hardcopy paper. You can override this default initial size using the width and height keywords. These settings remain in force indefinitely; use width=0,height=0 to return to the default dpi-dependent behavior. For a dpi=75, landscape=0 window, width=638,height=825 displays the entire sheet of hardcopy paper. Supplying these keywords will not change the size of an existing window; only newly created windows. By default, an X window will attempt to use shared colors, which permits several Yorick graphics windows (including windows from multiple instances of Yorick) to use a common palette. You can force an X window to post its own colormap (set its colormap attribute) with the private=1 keyword. You will most likely have to fiddle with your window manager to understand how it handles colormap focus if you do this. Use private=0 to return to shared colors. By default, Yorick will not wait for the X window to become visible; code which creates a new window, then plots a series of frames to that window should use wait=1 to assure that all frames are actually plotted. By default, a graphics window does NOT have a hardcopy file of its own -- any request for hardcopy are directed to the default hardcopy file, so hardcopy output from any window goes to a single file. By specifying the hcp keyword, however, a hardcopy file unique to this window will be created. If the "hcp_filename" ends in ".cgm", the hardcopy file is a binary CGM file; otherwise, hardcopy files are in Postscript format. Use hcp="" to revert to the default hardcopy file (closing the window specific file, if any). The legends keyword, if present, controls whether the curve legends are (legends=1, the default) or are not (legends=0) dumped to the hardcopy file. The dump keyword, if present, controls whether all colors are converted to a gray scale, (dump=0), or the current palette is dumped at the beginning of each page of hardcopy output (dump=1, the default). (The legends keyword applies to all pictures dumped to hardcopy from this graphics window. The dump keyword applies only to the specific hardcopy file defined using the hcp keyword -- use the dump keyword in the hcp_file command to get the same effect in the default hardcopy file.) Use rgb=1 to set the rgb color model when you are creating a window on an 8-bit display on which you intend to use three component rgb colors (see color). This installs the 5x9x5 colorcube and avoids having to issue the palette command after the first true color object has been drawn. If both display="" and hcp="", the graphics window will be entirely eliminated. The style keyword, if present, specifies the name of a Gist style sheet file; the default is "work.gs". The style sheet determines the number and location of coordinate systems, tick and label styles, and the like. Other choices include "axes.gs", "boxed.gs", "work2.gs", and "boxed2.gs". The parent=id keyword can be used to make the yorick window a subwindow of an existing window. The id is an integer, which is the system-dependent window id that must be retrieved from the application which owns the parent window. When parent= is defined, xpos= and ypos= specify the offset in that window; both default to 0. If invoked as a function, window(...) returns the current window number.
SEE ALSO: plsys, hcp_file, fma, hcp, redraw, palette, animate, plg, winkill, gridxy, no_window
SEE: window_select
DOCUMENT window_geometry() or window_geometry(win) Get geometry settings of the visible region of display window WIN (or current window if WIN is nil or not specified). These settings are subject to change each time the window get resized. The result is a vector of 6 doubles: [DPI, ONE_PIXEL, XBIAS, YBIAS, WIDTH, HEIGHT] where: DPI = dot-per-inch of WIN ONE_PIXEL = pixel size in NDC units XBIAS = abscissa offset in NDC units YBIAS = ordinate offset in NDC units WIDTH = width of visible region in pixels HEIGHT = height of visible region in pixels Pixel coordinates (XPIX,YPIX) run from top-left (0,0) to bottom-right (WIDTH-1,HEIGHT-1). The conversion to NDC coordinates is: XNDC = XBIAS + XPIX*ONE_PIXEL; YNDC = YBIAS - YPIX*ONE_PIXEL; If window WIN does not exists, all output values are zero. Notes: (1) The top/left margin(s) used by Gist window to display some message are not considered as part of the "visible" region. (2) An extra 0.5 pixel offset has been added to (XBIAS,YBIAS) to avoid rounding errors.
SEE ALSO: window, current_window, viewport, limits.
SEE: window_select
DOCUMENT window_select(n) or window_exists(n) or window_list() The function window_select makes window number N the current one and return 1 (true); unless window number N does not exists, in which case the current window is left unchanged and 0 (false) is returned. The function window_exists returns 1 or 0 whether or not window number N exists. The function window_list returns the list of existing windows as a vector of longs or nil if no window currently exists.
SEE ALSO: window, current_window, redraw, fma, limits, window_geometry.
DOCUMENT winkill or winkill, n deletes the current graphics window, or graphics window N (0-63).
SEE ALSO: window