Skip to main content

ModifyGraph

ModifyGraph [/W=winName /Z] [frameInset= i, frameStyle= f , gfMult=f, gFont=fontStr, gfSize=gfs, gfRelSize=pct, gmSize=gms, height=heightSpec, swapXY=s, useComma=uc, useDotForX=u, UIControl=f, useLongMinus=m, width=widthSpec]

The ModifyGraph operation modifies the target or named graph. This section of ModifyGraph relates to general graph window settings. See also following sections:

ModifyGraph for Traces

ModifyGraph for Axes

ModifyGraph for Colors

Parameters

expand=eSpecifies the onscreen expansion (or magnification) factor of a graph. e may be zero or 0.125 to 8 times expansion.
Graph magnification affects only base graphs (not subwindowed graphs), and it affects only the onscreen display; it has no effect on graph exporting or printing.
When changing the magnification, the graph window will automatically resize itself except for negative values which are used in recreation macros where the size is already correct.
frameInset= iSpecifies the number of pixels by which to inset the frame of the graph subwindow.
frameStyle= fspecifies the frame style for a graph subwindow. Values for frameStyle are:
f =0:None
f =1:Single
f =2:Double
f =3:Triple
f =4:Shadow
f =5:Indented
f =6:Raised
f =7:Text well
The last three styles are fake 3D and will look good only if the background color of the enclosing space and the table itself is a light shade of gray.
gfMult=fMultiplies font and marker size by f percent. Clipped to between 25% and 400%; it is applied after all other font and marker size calculations.
gFont=fontStrSpecifies the name of the default font for the graph, overriding the normal default font. The normal default font for a subgraph is obtained from its parent while a base graph uses the value set by the DefaultFont operation.
gfSize=gfsSets the default size for text in the graph. Normally, the default size for text is proportional to the graph size; gfSize will override that calculation as will the gfRelSize method. Use a value of -1 to make a subgraph get its default font size from its parent.
gfRelSize=pctSpecifies the percentage of the graph size to use in calculating a default size for text in the graph. This overrides Igor's normal method for setting the default font size as a function of the graph size. When used, the default marker size is set to one third the font size. Use a value of 0 to revert to the default method.
gmSize=gmsSets the default size for markers in the graph. Use a value of -1 to make a subgraph get its default marker size from its parent.
height=heightSpecSets the height for the graph area. See the examples.
swapXY=s
s=0:Normal orientation of X and Y coordinates.
s=1:Swap X and Y values to plot Y coordinates versus the horizontal axes and X coordinates versus the vertical axes. The effect is similar to mirroring the graph about the lower-left to upper-right diagonal.
useComma=uc
uc =0:Use period as decimal separator and comma as thousands separator (default).
uc =1:Use comma as decimal separator and period as the thousands separator. This does not alter the presentation of numbers in {expression} constructs in annotations.
useDotForX=uIn the display of axis labels, if u =1 then, in instances of exponential notation such as "5x103", the normal "x" is replaced with a dot giving "5·103". useDotForX was added in Igor Pro 9.00.
UIControl=fDisables certain aspects of the user interface for graphs. The UIControl keyword, added in Igor Pro 7.00, is for use by advanced Igor programmers who want to disable user actions.
This is a bitwise setting. See Setting Bit Parameters for details about bit settings.
f is defined as follows:
Bit 0:Disable axis click. Prevents moving or otherwise modifying an axis.
Bit 1:Disable cursor click. Prevents moving a graph cursor.
Bit 2:Disable trace drag. Prohibits the click-and-hold action to offset a trace on the graph.
Bit 3:Disable marquee. When set, you can't make a marquee on the graph, which in turn prevents changing the range of the graph using the marquee.
Bit 4:Disable draw mode.
Bit 5:Disable double click. Prohibits any double-click action. In general, double-clicks in a graph bring up dialogs to modify the graph's appearance.
Bit 6:Disable clicks on annotations. Prevents modification of annotations.
Bit 7:Disable tooltips.
Bit 8:Disable contextual menus.
Bit 9:Disable marquee menu. With this set, you can still have a marquee and use it for, i.e., selecting some portion of the graph, but you can't use the maruqee menu to change the graph's range. Note that if bit 3 is set, this bit is moot.
Bit 10:Disable mouse wheel events. This will prevent axis scaling using the mouse wheel.
Bit 11:Disable option-drag. Prevents offsetting the graph by holding down the Alt key and then dragging in the plot area.
To disable items in the Graph menu use SetIgorMenuMode.
useLongMinus=mUses a normal (m =0; default) or long dash (m =1) for the minus sign.
width=widthSpecSets the width for the graph area. See the examples.

Flags

/W=winNameModifies the named graph window or subwindow. When omitted, action will affect the active window or subwindow. This must be the first flag specified when used in a Proc or Macro or on the command line.
When identifying a subwindow with winName, see Subwindow Syntax for details on forming the window hierarchy.
/ZDoesn't generate an error in style macros if the indexed trace, named wave, or named axis does not exist.

Examples

Execute the following lines to create a graph where all the text expands and contracts directly in relation to the window size:

Make jack=sin(x/8);display jack
ModifyGraph mode=4,marker=8,gfRelSize= 5.0
TextBox/N=text0/A=MC "Some \\Zr200big\\]0 and \\Zr050small\\]0\rtext"

The widthSpec and heightSpec set the width and height mode for the top graph. The following examples illustrate how to specify the various modes.

ModifyGraph width=0, height=0           // set to auto height, width mode.
// The width and height of horizontal
// and vertical axes are automatically
// determined by Igor based on the
// overall size of the graph and other
// factors such as axis offset setting
// and the effect of exterior textboxes.
// This is the normal, default mode.

Variable n=72*5 // five inches as points
ModifyGraph width=n // absolute width mode, horizontal axis
// width constrained to n points

ModifyGraph height=n // absolute height mode, n is in points
// The height of the vertical axes is
// constrained to n points.

Variable n=2
ModifyGraph width={perUnit,n,bottom} // per unit width mode
// The width of the horizontal
// axes is n points times the
// range of the bottom axis.

ModifyGraph height={Aspect,n} // aspect height mode, n is aspect ratio
// The height of the vertical axes is
// n times width of the horizontal axes.

ModifyGraph width={Plan,n,bottom,left} // plan width mode.
// The width of the horizontal
// axes is n times height of
// vertical axes times range of
// the bottom axis divided by
// the range of the left axis.

See Also

ModifyGraph for Traces

ModifyGraph for Axes

ModifyGraph for Colors

ModifyGraph for Traces

ModifyGraph [/W=winName /Z] key [(traceName)] = value [, key [(traceName)] = value]...

This section of ModifyGraph relates to modifying the appearance of wave "traces" in a graph. A trace is a representation of the data in a wave, usually connected line segments.

Parameters

Each parameter has the syntax:

key [(traceName)] = value

Each key parameter may take an optional traceName enclosed in parentheses. Usually traceName is simply the name of a wave displayed in the graph, as in "mode(myWave)=4". If the "(traceName)" is omitted, all traces in the graph are affected. For instance, "ModifyGraph lSize=0.5" sets the lines size of all traces to 0.5 points.

More precisely, traceName is a wave name, optionally followed by the # character and an instance number. For example, "mode(myWave#1)=4".

A string containing a trace name can be used with the $ operator to specify traceName. For example, "String MyTrace="myWave#1"; mode($MyTrace)=4".

Though not shown in the syntax, the optional "(traceName)" may be replaced with "[traceIndex]", where traceIndex is zero or a positive integer denoting the trace to be modified. "[0]" denotes the first trace appended to the graph, "[1]" denotes the second trace, etc. This syntax is used for style macros, in conjunction with the /Z flag.

For certain modes and certain properties, you can set the conditions at a specific point on a trace by appending the point number in square brackets after the trace name. For more information, see the Customize at Point section below.

The parameter descriptions below omit the optional "(traceName)". When using ModifyGraph from a user-defined function, be careful not to pass wave references to ModifyGraph. ModifyGraph expects trace names, not wave references. See Trace Name Parameters for details.

arrowMarker= 0
arrowMarker= {aWave,lineThick,headLen,headFat,posMode [,barbSharp=b,barbSide=s,frameThick=f]}
Draws arrows instead of conventional markers at each data point in a wave. Arrows are not clipped to the plot area and will be drawn wherever a data point is within the plot area.
aWave contains arrow information for each data point. It is a two (or more) column wave containing arrow line lengths (in points) in column 0 and angles (in radians measured counterclockwise) in column 1. Zero angle is a horizontal arrow pointing to the right. If an arrow is below the minimum length of 4 points, a default marker is drawn.
Additional columns may be supplied in aWave to control parameters on a point by point basis. These optional columns are specified by dimension label and not by specific column numbers. The labels are lineThick, headLen, and headFat and correspond to the same parameters listed above.
You can change arrow markers into standard meteorological wind barbs by adding a column to aWave and giving it a column label of windBarb. Values are integers from 0 to 40 representing wind speeds up to 4 flags. Use positive integers for clockwise barbs and negative for the reverse. Use NaN to suppress the drawing. See Wind Barb Plots for an example.
lineThick is the line thickness in Points.
headLen is the arrow head length in Points.
headFat controls the arrow fatness. It is the width of the arrow head divided by the length.
posMode specifies the arrow location relative to the data point.
posMode =0:Start at point.
posMode =1:Middle on point.
posMode =2:End at point.
In addition to the wave specification, aWave can also be the literal "_inline_" to draw lines and arrows between points on the trace (see Examples below). If aWave is _inline_, posMode values are:
posMode =0:Arrow at start.
posMode =1:Arrow in middle.
posMode =2:Arrow at end.
posMode =3:Arrow in middle pointing backwards.
You can also enable inline mode even if aWave is not _inline_ by setting posMode to values between 4 and 7. These are the same as modes 0-3 above.
Optional parameters must be specified using keyword = value syntax and can only be appended after posMode in any order.
barbSharp is the continuously variable barb sharpness between -1.0 and 1. 0:
barbSharp = 1:No barb; lines only.
barbSharp = 0:Blunt (default).
barbSharp = -1:Diamond.
barbSide specifies which side of the line has barbs relative to a right-facing arrow:
barbSide =0:None.
barbSide =1:Top.
barbSide =2:Bottom.
barbSide =3:Both (default).
frameThick specifies the stroke outline thickness of the arrow in points. The default is frameThick = 0 for solid fill.
aWave can contain columns with data for each optional parameter using matching column names.
Open Barbs And Arrows Demo
barStrokeRGB=(r,g,b[,a])
Specifies a separate color for bar strokes (outlines) if useBarStrokeRGB is 1. r, g, b, and a specify the the color and optional opacity as RGBA Values. The default is opaque black.
Applies only to Histogram Bars drawing mode (mode=5).
The bar fill color continues to be set with the rgb=(r,g,b[,a]), zColor={...}, usePlusRGB, plusRGB=(r,g,b[,a]), useNegRGB, and negRGB=(r,g,b[,a]) parameters.
Use barStrokeRGB and useBarStrokeRGB to put a differently-colored outline around Histogram Bars:
cmplxMode= cDisplay method for complex waves.
c =0:Default mode displays both real and imaginary parts (imaginary part offset by dx/2).
c =1:Real part only.
c =2:Imaginary part only.
c =3:Magnitude.
c =4:Phase (radians).
cmplxMode=0 does not work when the trace is a subrange of a multidimensional wave.
column=nChanges the displayed column from a matrix. Out of bounds values are clipped.
gaps=g
g =0:No gaps (ignores NaNs).
g =1:(default) Gaps (shows NaNs as gaps).
Note: to display gaps for masked values, use the optional gap parameter to the mask command.
gradientSee Gradient Fills for parameters and details.
gradientExtraSee Gradient Fills for parameters and details.
hBarNegFill=nFill kind for negative areas if useNegPat is true. n is the same as for the hbFill keyword.
hbFill=nSets the fill pattern.
n =0:No fill
n =1:Erase
n =2:Solid black.
n =3:75% gray
n =4:50% gray
n =5:25% gray.
n = 6...77:See Fill Patterns.
hideTrace=hRemoves a trace from the graph display.
h=0:Shows the trace if it is hidden.
h=1:Hides the trace and removes it from autoscale calculations.
h=2:Hides the trace.
When using h=1 to hide a graph trace, the hidden trace symbol and following text in annotations are also hidden. The amount of hidden text is the lesser of: 1) the remaining text on the same line or 2) the text up to but not including another trace symbol "\s(traceName)".
lHair=lhSets the hairline factor for a trace printed on a PostScript® printer.
lineJoin={j, ml}Sets the line join style and miter limit.
Line join:
j =0:Miter joins
j =1:Round joins
j =2:Bevel joins (default)
Miter limit:
ml >= 1:Sets miter limit to ml
ml = INF:Sets miter limit to unlimited
ml = 0:Leaves miter limit unchanged
ml = -1:Sets miter limit to default (10)
The miter limit applies only to miter joins (j =0) and is ignored otherwise.
See Line Join and End Cap Styles for further information.
The lineJoin keyword was added in Igor Pro 8.00.
live=lvlv is a bitwise parameter defined as follows:
Bit 0:Live mode (see Live Mode below)
Bit 1:Fast line drawing (see Fast Line Drawing below)
See Setting Bit Parameters for details about bit settings.
lSize=lSets the line thickness, which can be fractional or zero, which hides the line.
logZColor=lzc
lzc =0:Sets the default linearly-spaced zColors (see the zColor parameter).
lzc =1:Turns on logarithmically-spaced zColors. This requires that the zWave values be greater than 0 to display correctly.
Affects trace line color only when the zColor parameter is used with a color table or color index wave - it has no effect if rgb=(r,g,b) parameter or zColor={...,directRGB} are used.
lOptions=capSets the line end cap style:
cap=0:Flat caps
cap=1:Round caps
cap=2:Square caps (default)
See Line Join and End Cap Styles for further information.
lSmooth=lsSets the smoothing factor for a trace printed on a PostScript® printer.
lStyle=sSets trace line style or dash pattern.
s =0:Solid lines.
s =1...17:Specified dashed line style.
marker=nn =0 to 62 designates various markers if mode=3 or 4.
You can also create custom markers. See Custom Marker Hook Functions.
See Markers for a table of marker values.
mask={maskwave,mode,value [, gap]} or 0
Specifies individual points for display by comparing values in maskWave with value as specified by mode.
mode =0:Exclude if equal.
mode =1:Include if equal.
mode =2:Include if bitwise AND is true.
mode =3:Include if bitwise AND is false.
maskwave can be specified using subrange notation. The length of maskwave (or subrange) must match the size of specified trace's wave (or subrange.) Bitwise modes should be used with integer waves with the intent of using one mask wave with multiple traces. (See Examples below.)
The optional gap value was added in Igor 10; it defaults to 0 which maintains the behavior of drawing over masked value(s) and connecting the non-masked values. Normally this means a line is drawn between the non-masked values.
Setting gap to 1 leaves gaps where the masked values are. The gap setting is independent of ModifyGraph gap (which applies to NaN values, not to masked values).
mode=mSets trace display mode.
m =0:Lines between points.
m =1:Sticks to zero.
m =2:Dots at points.
m =3:Markers.
m =4:Lines and markers.
m =5:Histogram bars.
m =6:Cityscape.
m =7:Fill to zero.
m =8:Sticks and markers.
mrkFillRGB=(r,g,b[,a])Sets the background fill color for hollow markers. r, g, b, and a specify the the color and optional opacity as RGBA Values.
This setting takes effect only if opaque is set to non-zero. See opaque keyword below.
The mrkFillRGB keyword was added in Igor Pro 9.00.
mrkStrokeRGB=(r,g,b[,a])
Specifies the color for marker stroked lines if useMrkStrokeRGB is 1. r, g, b, and a specify the the color and optional opacity as RGBA Values. The default is opaque black.
The marker fill color continues to be set with the rgb=(r,g,b[,a]) or zColor={...} parameters.
Applies only to the nontext and nonarrow marker modes.
Use mrkStrokeRGB and useMrkStrokeRGB to put a colored outline around filled markers, such as marker=19:
note

The stroke color of unfilled markers such as marker 8 is also affected by mrkStrokeRGB, but their fill color is only affected by the opaque parameter (and the opaque fill color is always white, so if you want a color-filled marker, don't use unfilled markers).

mrkThick=tSets the thickness of markers in points (can be fractional).
msize=mSpecifies the marker size in points.
m =0 means autosize markers.
m greater than zero sets marker size.
m can be fractional. This will only make a difference when the graph is printed because fractional points cannot be displayed on the screen.
mskip=nPuts a marker on only every nth data point in lines and markers mode (mode=4). Useful for displaying many data points when you want to identify the traces with markers. The maximum value for n is 32767.
mstandoff=sPrevents lines from touching markers in lines and markers mode if s is greater than zero. s is in units of points. This feature was added in Igor Pro 8.00.
muloffset={mx,my}Sets the display multiplier for X (mx) and Y (my). The effective value for a given X or Y data point then becomes muloffset *data +offset. A value of zero means "no multiplier" -- not multiply by zero.
negRGB=(r,g,b[,a])Specifies the color for negative values represented by the trace if useNegRGB is 1. r, g, b, and a specify the the color and optional opacity as RGBA Values.
offset={x,y}Sets the display offset in horizontal (x) and vertical (y) axis units.
opaque=oDisplays transparent (o =0) or opaque (o =1) markers.
If o is zero (default) hollow markers such as unfilled circles and boxes have transparent backgrounds. If o is non-zero, the background is filled with color. The color defaults to white, but you can change it using the mrkFillRGB keyword.
patBkgColor= 0, 1, 2 or (r,g,b[,a])
Specifies the background color for fill patterns.
0, the default, is white, 1 is graph background, 2 is transparent.
Use (r,g,b[,a]) for a specific RGB color. r, g, b, and a specify the the color and optional opacity as RGBA Values.
plotClip=pp =1 clips the trace by the operating system (not by Igor) to the plot rectangle. This trims overhanging markers and thick lines. On Windows, this may not be supported on certain printers or by certain applications when importing.
plusRGB=(r,g,b[,a])Specifies the color for positive values represented by the trace if usePlusRGB is 1. r, g, b, and a specify the the color and optional opacity as RGBA Values.
quickdrag=qq=0 for normal traces.
q=1 for traces that can be instantly dragged without the normal one second delay. See the Quickdrag section below.
q=2 causes the mouse cursor to change to 4 arrows when over the trace and a reduced search is used.
removeCustom=rRemoves per-point trace customizations. See Customize at Point for background information. The removeCustom keyword was added in Igor Pro 9.00.
The parameter r is required by the ModifyGraph syntax, but its value is immaterial. We recommend using 1 for r but any number will work.
These examples show how to use the removeCustom keyword given a graph with a trace named wave0:
// Remove customizations for point 3 of trace wave0
ModifyGraph removeCustom(wave0[3]) = 1

// Remove customizations for all points of trace wave0
ModifyGraph removeCustom(wave0) = 1

// Remove customizations for all points of all traces
ModifyGraph removeCustom = 1
rgb=(r,g,b[,a])Specifies the color of the trace. r, g, b, and a specify the the color and optional opacity as RGBA Values.
textMarker={<char or wave >,font,style,rot,just,xOffset,yOffset} or 0
Uses the specified character or text from the specified wave in place of the marker for each point in the trace.
If the first parameter is a quoted string or a string expression of the form "" + strexpr in a user function, ModifyGraph uses the first three bytes of the string as the marker for all points. Three bytes are supported mainly for non-ASCII characters but can be used for 3 separate single-byte characters. Otherwise, it interprets the first parameter as the name of a wave. If the wave is a text wave, it uses the value of each point in the text wave as the marker for the corresponding point in the trace. If the wave is a numeric wave, the value for each point is converted into text and the result is used as the marker for the corresponding point in the trace.
xOffset and yOffset are offsets in fractional points. Each marker will be drawn offset from the location of the corresponding point in the trace by these amounts.
style is a font style code as used with the ModifyGraph fstyle keyword.
rot is a text rotation between -360 and 360 degrees.
just is a justification code as used in the DrawText operation except the x and y codes are combined as y*4+x. Use 5 for centered.
The font size is 3*marker size. Note that marker size and color can be dynamically set via the zColor and zmrkSize keywords.
toMode=ttoMode modifies the behavior of the display modes as determined by the mode parameter.
t =0:Fill-to-zero.
t =1:Fill to next trace. Applies to sticks to zero (mode=1), histogram bars (mode=5) and fill-to-zero (mode=7).
t =2:Means add the current trace's Y values to the next trace's Y values. Works with all display modes.
t =3:Means stack on next and is the same as t =2 except that the added value is clipped to zero. Works with all display modes.
t =-1:This mode is used only with category plots and means "keep with next" (i.e., put in the same subcategory as the next trace). It is used for special effects only.
For modes 1, 2 and 3, both Y-waves must have the same number of points and must use the same X values. Igor uses the X values from the first wave for both Y-waves.
traceName=nameSets, changes, or removes a custom trace name.
The traceName keyword was added in Igor Pro 9.00.
By default Igor assigns trace names based on the name of the displayed wave. You can assign a custom trace name when appending a wave to a graph using the /TN flag with the Display and AppendToGraph operations. See Trace Names for details.
The traceName keyword allows you to change the name of a trace after it has been added to a graph. For example:
Make/O wave0
Display wave0
ModifyGraph traceName(wave0)=Custom0
Use $"" for name to remove the custom name and revert to the default trace name:
ModifyGraph traceName(Custom0)=$""
Renaming a trace can change the names of other traces in the graph from the same wave. For example, if you display two instances of wave0 in one graph, the first trace name is wave0 and the second is wave0#1. If you now rename trace wave0, the name of the second instance of wave0 changes from wave0#1 to wave0. See Instance Notation for further discussion.
useBarStrokeRGB=uIf u =1 then bar stroked lines use the color specified by the barStrokeRGB keyword.
Applies only to Histogram Bars drawing mode (mode=5).
The bar fill color continues to be set by the rgb, zColor, usePlusRGB, plusRGB, useNegRGB, and negRGB keywords.
if u =0 then the bar stroked line colors are set with the rgb=(r,g,b[,a]) or zColor={...} parameters, just like the bar fill color.
useMrkStrokeRGB=uIf u =1 then marker stroked lines use the color specified by the mrkStrokeRGB keyword. The marker fill color continues to be set with the rgb=(r,g,b[,a]) or zColor={...} parameters.
Applies only to the nontext and nonarrow marker modes.
if u=0 then the marker stroked line colors are set with the rgb=(r,g,b[,a]) or zColor={...} parameters, just like the marker fill color.
useNegPat=uIf u =1 then negative fills use the mode specified by the hBarNegFill keyword. Applies to the fill-to-zero, fill-to-next and histogram bar modes.
useNegRGB=uIf u =1 then negative fills use the color specified by the negRGB keyword. Applies to the fill-to-zero, fill-to-next and histogram bar modes.
usePlusRGB=uIf u =1 then positive fills use the color specified by the plusRGB keyword. Applies to the fill-to-zero, fill-to-next and histogram bar modes.
userData={udName, doAppend, data}
Attaches arbitrary data to a trace. You should specify a trace name (userData(<traceName>)={...}). Otherwise copies of the data will be attached to every trace, which is most likely not what you intend.
Use the GetUserData function to retrieve the data, with the trace name as the object ID.
udName:The name of your user data. Use The name of your user data. Use $"" for unnamed user data.
doAppend=0:Do not append. Any pre-existing data is replaced.
doAppend=1:Append the data. Data is added to the end of any pre-existing data.
data:A string expression containing the data you wish to attach to the trace.
zColor={zWave,zMin,zMax,ctName [,reverseMode [,cWave ] ]} or 0
Dynamically sets color based on the values in zWave and color table name or mode specified by ctName .
zWave may be a subrange expression such as myZWave[2,9] when zWave has more points than the trace, in which case myZWave[2] provides the z value for the first point of the trace, and autoscaled zMin or zMax is determined over only the zWave subrange.
If a value in the zWave is NaN then a gap or missing marker will be observed. If a value is out of range it will be replaced with the nearest valid value. See also the zColorMax and zColorMin keywords.
ctName can be the name of a built-in color table as returned by the CTabList function, such as Grays or Rainbow, for color table mode, ctableRGB for color table wave mode, cindexRGB for color index wave mode, or directRGB for direct color wave mode.
zColor for Built-in Color Table Mode
This mode uses the values in zWave to select a color from a built-in color table. See Color Tables for details.
zWave contains values that are used to select a color from the built-in color table specified by ctName .
zMin is the zWave value that maps to the first entry in the color table. Use * for zMin to autoscale it to the smallest value in zWave.
zMax is the zWave value that maps to the last entry in the color table. Use * for zMax to autoscale it to the largest value in zWave.
ctName is a built-in color table name such as Grays or Rainbow. See the CTabList function for a list of built-in color tables.
Set the reverseMode to 1 to reverse the color table lookup or to 0 use the normal lookup. If you omit reverseMode or specify -1, the reverse mode is unchanged.
cWave must be omitted.
Normally the colors from the color table are linearly distributed between zMin and zMax. Use logZColor=1 to distribute them logarithmically.
Example zColor command using built-in color table:
ModifyGraph zColor(data)={zWave,,,Rainbow}
zColor for Color Table Wave Mode
This mode is like Built-in Color Table except that the colors are stored in a color table wave that you have created. A color table wave can be a 3 column RGB wave or a 4 column RGBA wave. See Color Table Waves for details.
zWave contains values that are used to select a color from the color table wave specified by cWave.
zMin is the zWave value that maps to the first entry in the color table wave. Use * for zMin to autoscale it to the smallest value in zWave.
zMax is the zWave value that maps to the last entry in the color table wave. Use * for zMax to autoscale it to the largest value in zWave.
ctName is ctableRGB.
Set the reverseMode to 1 to reverse the color table lookup or to 0 use the normal lookup. If you omit reverseMode or specify -1, the reverse mode is unchanged.
cWave is a reference to your color table wave.
Normally the colors from the color table are linearly distributed between zMin and zMax. Use logZColor=1 to distribute them logarithmically.
// Example ctableRGB zColor command
ColorTab2Wave Rainbow // Creates M_Colors wave
Rename M_Colors, MyColorTableWave
ModifyGraph zColor(data)={zWave,,,ctableRGB,0,MyColorTableWave}
zColor for Color Index Wave Mode
This mode is like Color Table Wave except that the values in zWave represent X indices in terms of cWave . You must create the RGB or RGBA color index wave and set its X scaling appropriately. See Color Index Wave for details.
zWave contains values that are used to select a color from the color index wave specified by cWave .
zMin and zMax are not used and should be set to *.
ctName is cindexRGB.
Set the reverseMode to 1 to reverse the color table lookup or to 0 use the normal lookup. If you omit reverseMode or specify -1, the reverse mode is unchanged. Normally the zWave values select the color from the row of cWave whose X value is closest to the zWave value. ReverseMode =1 reverses the colors.
cWave is a reference to your color index wave.
Normally the colors from the color index wave are linearly distributed between the minimum and maximum X values of the color index wave. Use logZColor=1 to distribute them logarithmically.
// Example cindexRGB zColor command:
zColor(data)={myZWave,*,*,cindexRGB,0,M_colors}
// M_colors is generated by ColorTab2Wave
zColor for Direct Color Wave Mode
In direct color mode, zWave is an RGB or RGBA wave that directly specifies the color for each point in the trace. If zWave is 8-bit unsigned integer, then its color component values range from 0 to 255. For other numeric types, color component values range from 0 to 65535. See ColorTab2Wave, which generates RGB waves, and Direct Color Details.
zWave is an RGB or RGBA wave that directly specifies the color for each point of the trace.
zMin and zMax are not used and should be set to *.
ctName is directRGB.
reverseMode is not applicable and should be omitted or set to 0.
cWave must be omitted.
// Example directRGB zColor command
zColor(data)={zWaveRGB,*,*,directRGB}
Turning zColor Off
zColor = 0 turns the zColor modes off.
zColorMax=(red, green, blue)
Sets the color of the trace for zColor={zWave,...} values greater than the zColor's zMax. Also turns zColorMax mode on.
The red, green and blue color values are in the range of 0 to 65535.
zColorMax=1, 0, or NaN
Turns zColorMax mode off, on, or transparent. These modes affect the color of zColor={zWave,...} values greater than the zColor's zMax.
1:Turns zColorMax mode on. The color of the affected trace pixels is black or the last color set by zColorMax=(red, green, blue).
0:Default; turns zColorMax mode off. The color of the affected trace pixels is the last color in the zColor's ctname color table.
NaN:Transparent zColorMax mode. Affected trace pixels are not drawn.
zColorMin=(red, green, blue)
Sets the color of the trace for zColor={zWave,...} values less than the zColor's zMin. Also turns zColorMin mode on.
The red, green and blue color values are in the range of 0 to 65535.
zColorMin=1, 0, or NaN
Turns zColorMin mode off, on, or transparent. These modes affect the color of zColor={zWave,...} values less than the zColor's zMin.
1:Turns zColorMin mode on. The color of the affected image pixels is black or the last color set by zColorMin=(red, green, blue).
0:Default; turns zColorMin mode off. The color of the affected trace pixels is the first color in the zColor's ctname color table.
NaN:Transparent zColorMin mode. Affected trace pixels are not drawn.
zmrkNum={zWave} or 0
Dynamically sets the marker number for each point to the corresponding value in zWave . The values in zWave are the marker numbers (as used with the marker keyword). If a value in the zWave is NaN then no marker will be drawn for the corresponding point. If a value is out of range it will be replaced with the nearest valid value.
zmrkNum=0 turns this mode off.
zmrkSize={zWave,zMin,zMax,mrkMin,mrkMax, [axis] } or 0
Dynamically sets marker size based on values in zWave. See Marker Size as f(z) for background information.
zmrkSize = 0 turns this mode off.
Use * or a missing parameter for zMin and zMax to autoscale. mrkMin and mrkMax can be fractional.
mrkMin is the marker size to use when z equals zMin and mrkMax is the marker size to use when z equals zMax. mrkMin and mrkMax are not limits; they just set the linear relationship between z and marker size.
If a value in the zWave is NaN then the corresponding marker is not drawn.
The marker size is clipped to 400 on the high end and to 1 point on the low end.
axis is an optional parameter specifying an existing axis on the graph. It is supported in Igor Pro 9.00 and later. Passing $"" for axis is the same as omitting it.
If axis is specified, the values in zWave are interpreted as in units of the specified axis and specify the half-width of the marker to be drawn. For a circle marker, this is the radius of the marker.
If axis is specified, the zMin, zMax, mrkMin, and mrkMax parameters have no impact on the marker size unless you remove the specified axis in which case those parameters control the trace's marker sizes.
See Marker Size as f(z) in Axis Units for further information.
zpatNum={zWave} or 0
Dynamically sets the positive fill type/pattern number for each point to the corresponding value in zWave . The values in zWave are the pattern numbers (as used with the hbFill keyword). If a value in the zWave is NaN then the corresponding point will not be drawn. If a value is out of range it will be replaced with the nearest valid value.
zpatNum=0 turns this mode off.

Flags

/W=winNameModifies the named graph window or subwindow. When omitted, action will affect the active window or subwindow. This must be the first flag specified when used in a Proc or Macro or on the Command Line.
When identifying a subwindow with winName, see Subwindow Syntax for details on forming the window hierarchy.
/ZUsed for style macros. Doesn't generate an error if the indexed trace, named wave, or named axis does not exist.

Details

Waves supplied with zmrkSize, zmrkNum, and zColor may use Subrange Display Syntax.

Live Mode

Bit 0 of live=lv controls live mode. Live mode improves graph update performance when one or more of the waves displayed in the graph is frequently modified, for example, if the waves are being acquired from a data acquisition system. Live mode traces do not autoscale axes.

Fast Line Drawing

Bit 1 of live=lv controls fast line drawing. When enabled, Igor draws traces in lines-between-points mode using custom fast code instead of the normal system drawing code. The result is not as esthetically pleasing but can be much faster and may be critical in data acquisition applications. The custom code is used only for drawing to the screen, not for exporting graphics.

Fast line drawing was added in Igor Pro 8.00.

See also Graphs and High-Resolution Displays.

Quickdrag

Quick drag mode (quickdrag=1) is a special purpose mode for creating cross hair cursors using a package of Igor procedures. Normally you would have to click and hold on a trace for one second before entering drag mode. When quickdrag is in effect, there is no delay. If a trace is in quickdrag mode it should also be set to live mode. With this combination you can click on a trace and immediately drag it to a new XY offset. In addition to quick drag mode, the cross hair package relies on Igor to store information about the drag in a string variable if certain conditions are in effect. The string variable name (that you have to create) is S_TraceOffsetInfo. It must reside in a data folder that has the same name as the graph (not title!!) which in turn must reside in root:WinGlobals:. If these conditions are met, then after a trace is dragged, information will be stored in the string using the following key-value format:

GRAPH:<name of graph>;XOFFSET:<x offset value>;YOFFSET:<y offset value>;TNAME:<trace name>;

Customize at Point

You can customize the appearance of individual points on a trace in a graph for bar, marker, dot and lines to zero modes using key(tracename[pnt])=value syntax. The point number must be a literal number and the trace name is required.

To remove a customization, use key(tracename[-pnt-1])=value where value is not important but must match the syntax for the keyword. The offset of -1 is needed because point numbers start from zero. You can also remove customizations using the removeCustom keyword described above.

Although the syntax is allowed for all trace modifiers, it has meaning only for the following: rgb, marker, msize, mrkThick, opaque, mrkFillRGB, mrkStrokeRGB, mstandoff, barStrokeRGB, hbFill, patBkgColor and lSize.

Note that useBarStrokeRGB and useMrkStrokeRGB are not needed. The act of using barStrokeRGB or mrkStrokeRGB is enough to customize the point. But as a convenience, since these are generated by the modify graph dialog, they are ignored if used with [pnt] syntax.

Also note that legend symbols can use [pnt] syntax like so:

\s(<tracename>[pnt])

Automatically generated legends automatically include symbols for customized points.

For example:

Make/O/N=10 jack=sin(x); Display jack
ModifyGraph mode=5,hbFill=6,rgb=(0,0,0)
ModifyGraph hbFill(jack[2])=7,rgb(jack[2])=(0,65535,0)
ModifyGraph rgb(jack[3])=(65535,0,0)
Legend/C/N=text1/F=0/A=MC

Examples

Arrow markers:

Make/O/N=10 wave1= x; Display wave1
Make/N=(10,2) awave
awave[][0]= p*5 // length
awave[][1]= pi*p/9 // angle
ModifyGraph mode=3,arrowMarker(wave1)={awave,1,10,0.3,0}

// Now add an optional column to control headLen
Redimension/N=(-1,3) awave
awave[][2]= 7+p // will be head length

// Note at this point there has been no change until the following is executed
SetDimLabel 1,2,headLen,awave

Creating meteorological wind barb symbols:

Make/O/N=50 jack= floor(x/10),jackx= mod(x,10)
Display jack vs jackx
Make/O/N=(50,3) jackbarb
jackbarb[][0]= 40 // length of stem
jackbarb[][1]= 45*pi/180 // angle (45deg)
jackbarb[][2]= p // wind speed code
SetDimLabel 1,2,windBarb,jackbarb
ModifyGraph mode=3,arrowMarker(jack)={jackbarb,1,10,0.5,0}
ModifyGraph margin(top)=62,margin(right)=84

See also Wind Barb Plots for another example.

Inline arrows and barb sharpness:

Make/O/N=20 wavex=cos(x/3),wavey=sin(x)
Display wavey vs wavex
ModifyGraph mode=3,arrowMarker={\_inline\_,1,20,.5,0,barbSharp= 0.2}

Use direct color mode to individually color each point in a trace:

Make jack=sin(x/8)
Make/N=(128,3)/B/U jackrgb
Display jack
ModifyGraph mode=3,marker=19
jackrgb= enoise(128)+128
ModifyGraph zColor(jack)={jackrgb,*,*,directRGB}

Masking Example #1: Exclude alternating values

Make/O/N=100 jack= (p&1) ? sin(x/8) : cos(x/8)          // odd points are sin, even points are cosine
Display jack
ModifyGraph mode(jack)=4, marker(jack)=19, gaps(jack)=0 // no gaps or mask or mask with gaps

Make/O/N=100 mjack= (p&1) ? 0 : 1 // create a mask that shows (0) odd points and hides (1) even points
ModifyGraph mask(jack)={mjack,0,1} // hides (excludes) jack point if mjack mask value is 1

// now switch which points are masked (hidden)
mjack= (p&1) ? 1 : 0 // shows (0) even point and hides (1) odd points

Masking Example #2: Exclude subrange of data two ways: without and with a gap

// Create a rising edge with simulated noise spikes
Make/O/N=50 jill= 10*(1-exp(-x*x/200)) + gnoise(2)*(p>=32 && p<=36)
Display jill

// simulate missing data
jill[15] = NaN

// normal display of data, no masking
ModifyGraph mode(jill)=4, marker=8, gaps(jill)=1 // gaps where the jill values are NaN (this is the default gaps settings)

// Make a mask that hides the noisy data
Duplicate/O jill, maskJill // mask is best the same length as what it masks
Make/O maskJill = (p>=32 && p<=36) // maskJill is 0 for "good" data, 1 for "noise" data

// Skip over the noisy data without any gap (no gap setting in mask keyword's parameters, which defaults it to 0)
ModifyGraph mask(jill)={maskJill,0,1} // Exclude (skip) jill point if maskJill mask value is 1

// Instead of skipping the noisy data, show a gap where the noisy data is masked away
ModifyGraph mask(jill)={maskJill,0,1,1} // add the optional gap parameter to the mask keyword parameters

See Also

ModifyGraph (General settings)

ModifyGraph for Axes

ModifyGraph for Colors

Trace Names, Programming With Trace Names

Demos

Open Colors, Markers, Lines, Patterns Demo

Open Arrow Plot Demo

ModifyGraph for Axes

ModifyGraph [/W=winName /Z] key [(axisName)] = value [, key [(axisName)] = value]...

This section of ModifyGraph relates to modifying the appearance of axes in a graph.

Parameters

Each parameter has the syntax:

key [(axisName)] = value

Each key parameter may take an optional axisName (abbreviated as ax in the synopsis above) enclosed in parentheses. axisName is "left", "right", "top", "bottom" or the name of an free axis such as "vertCrossing". For instance, "ModifyGraph axThick(left)=0.5" sets the axis thickness for only the left axis.

If "(axisName)" is omitted, all axes in the graph are affected. For instance, "ModifyGraph standoff=0" disables axis standoff for all axes in the graph.

The parameter descriptions below omit the optional "(axisName)" .

axisClip= cSpecifies one of three clipping modes for traces.
c =0:Clips traces to a plot rectangle as defined by the pair of axes used by a given trace (default).
c =1:Plots traces on an axis with a restricted range (as set by axisEnab) to extend to the full range of the normal plot rectangle.
c =2:Traces extend outside the normal plot rectangle to the full extent of the graph area.
axisEnab={lowFrac,highFrac}
Restricts the length of an axis to a subrange of normal. The axis is drawn from lowFrac to highFrac of graph area height (if axis is vertical) or width (if axis is horizontal). For instance, {0.1,0.75} specifies that the axis is drawn from 10% to 75% of the graph area height/width, instead of the normal 0% to 100%. AxisEnab is discussed in Creating Split Axes and Creating Stacked Plots in the Graphs help file.
axisOnTop=tSpecifies drawing level of an axis and associated grid lines.
t =0:Draws axis before traces and images (default).
t =1:Draws the axis after all traces and images.
axOffset=aSpecifies the distance from default axis position to actual axis position in units of the width of a zero character (0) in a tick mark label. Unlike margin, axOffset adjusts to changes in the size of the graph.
axThick=tSpecifies the axis thickness in points.
barGap=fractionSets the fraction of the width available for bars to be used as gap between bars.
barGap sets the gap between bars in a single category while catGap sets the gap between categories.
btLen=pSets the length of major ("big") tick marks to p points. If p is zero, Igor uses the default length. p may be fractional.
btThick=pSets the thickness of major ("big") tick marks to p points. If p is zero, Igor uses the default thickness. p may be fractional.
catGap=fractionThe value for catGap is the fraction of the category width to be used as gap. The gap is divided equally between the start and end of the category width. A value of 0.2 would use 20% of the available space for the gap and leave 80% of the available space for the bars.
catGap sets the gap between categories while barGap sets the gap between bars in a single category.
dateFormat={languageName, yearFormat, monthFormat, dayOfMonthFormat, dayOfWeekFormat, layoutStr, commonFormat}
Sets the custom date format used in the active graph.
note

The custom date format is used only if you turn it on via a ModifyGraph dateInfo command. The last parameter to the ModifyGraph dateInfo command must be -1 to turn the custom date format on.

The parameters are the same as for the LoadWave/R flag except for the last one.
commonFormat selects the common date format to use in the Modify Axis dialog. The legal values correspond to the choices in the Common Format pop-up menu of the Modify Axis dialog. They are:
ValueDate Format
1mm/dd/yy
2mm-dd-yy
3mm.dd.yy
4mmddyy
6dd/mm/yy
7dd-mm-yy
8dd.mm.yy
9ddmmyy
11yy/mm/dd
12yy-mm-dd
13yy.mm.dd
14yymmdd
16mm/yy
17mm.yy
18Abbreviated month and year
19Full month and year
21mm/dd
22dd.mm
23Abbreviated month and day
24Full month and day
26Abbreviated date without day of week
27Abbreviated date with day of week
28Full date without day of week
29Full date with day of week
If the commonFormat parameter is negative, then it will select the Use Custom Format radio button in the Modify Axis dialog rather than Use Common Format and will then use the absolute value of commonFormat to determine which item in the Common Format pop-up menu to select.
dateInfo={sd,tm,dt}Controls formatting of date/time axes.
sd=0:Show date in the date&time format.
sd=1:Suppress date.
sd=2:Suppress time. The time is always shown if tm=2. sd=2 requires Igor Pro 9.00 or later.
tm=0:12 hour (AM/PM) time.
tm=1:24 hour (military) time.
tm=2:Elapsed time.
dt=-1:Custom date as specified via the dateFormat keyword.
dt=0:Short dates (2/22/90).
dt=1:Long dates (Thursday, February 22, 1990).
dt=2:Abbreviated dates (Thurs, Feb 22, 1990).
font="fontName"Sets the axis label font, e.g., font(left)="Helvetica".
freePos(freeAxName)=p
Sets the position of the free axis relative to the edge of the plot area to which the axis is anchored. p is in points, i.e., if the axis was made via /R=axName then the axis is placed p points from the right edge of the plot area. Positive is away from the central plot area. freeAxName may not be any of the standard axis names "left", "bottom", "right", or "top".
freePos(freeAxName)={crossAxVal,crossAxName}
Positions the free axis so it will cross the perpendicular axis crossAxName where it has a value of crossAxVal. freeAxName may not be any of the standard axis names "left", "bottom", "right", or "top", though crossAxName may.
You can position a free axis as a fraction of the distance across the plot area by using kwFraction for crossAxName. crossAxVal must then be between 0 and 1; any values outside this range are clipped to valid values.
fsize=ss=0 autosizes tick mark labels and axis labels.
If s is between 3 and 99 then the labels are fixed at s points.
fstyle=ff is a bitwise parameter with each bit controlling one aspect of the font style for the axis and tick mark labels as follows:
Bit 0:Bold
Bit 1:Italic
Bit 2:Underline
Bit 4:Strikethrough
See Setting Bit Parameters for details about bit settings.
ftLen=pSets the length of 5th (or emphasized minor) tick marks to p points. If p is zero, Igor uses the default length. p may be fractional.
ftThick=pSets the thickness of 5th (or emphasized minor) tick marks to p points. If p is zero, Igor uses the default thickness. p may be fractional.
grid=g
g =0:Grid off.
g =1:Grid on.
g =2:Grid on major ticks only.
gridEnab={lowFrac,highFrac}
Restricts the length of axis grid lines to a subrange of normal. The grid is drawn from lowFrac to highFrac of graph area height (if axis is horizontal) or width (if axis is vertical).
gridHair=hh =0 to 3, 0 for thicker lines, 3 for thinner. Default is 2. If h=0, the thickness of grid lines on major tick marks is the same as the axis thickness, half for a minor tick and one tenth for a subminor tick (log axis only). As h increases these thicknesses decrease by a factor of 2^h. If you want to see the effect of different values of gridHair, you will need to print a sample graph because you generally can't see the effect of thin lines on the screen. Also see the example experiment "Examples:Graphing Techniques:Graph Grid Demo".
gridStyle=gSets the grid style to various combinations of solid and dashed lines. In the following discussion, major, minor and subminor refer to grid lines the corresponding tick marks. Subminor ticks are used only on log axes when there is a small range and sufficient room (they correspond to hundredths of a decade). The different grid styes are solid, dotted, dashed, and blank. The possible grids are as follows:
g =0:Same as mode 1 if graph background is white else uses mode 5.
g =1:Major dotted, minor & subminor dashed.
g =2:All dotted.
g =3:Major solid, minor dotted, subminor blank.
g =4:Major & minor solid, subminor dotted.
g =5:All solid.
Also see the example experiment "Examples:Graphing Techniques:Graph Grid Demo".
highTrip=hIf the extrema of an axis are between its lowTrip and its highTrip then tick mark labels use fixed point notation. Otherwise they use exponential (scientific or engineering) notation.
lblLatPos=pSets a lateral offset for the axis label. This is an offset parallel to the corresponding axis. p is in points. Positive is down for vertical axes and to the right for horizontal axes.
lblLineSpacing=lineSpace
Specifies an adjustment to the normal line spacing for multi-line axis labels.
lineSpace is the amount of extra line spacing in points. It can be positive, zero or negative.
lblLineSpacing affects all lines of the axis label. See also the \sa and \sb escape codes described under General Escape Codes. They can be used to affect the spacing between individual lines.
lblMargin=lSpecifies the distance from edge of graph to label in points.
lblPos=pSets the distance from an axis to the corresponding axis label in points. If p =0, it automatically picks an appropriate distance.
This setting is used only if the given graph edge has at least one free axis. Otherwise, the lblMargin setting is used to position the axis label.
lblPosMode= mAffects the meaning and usage of lblPos, lblLatPos and lblMargin parameters. Mainly for use when you have multiple axes on a side and you need axis labels to be properly positioned even as you make graph windows dramatically larger or smaller.
m =0:Default compatibility mode (Margin or Axis absolute depending on presence of free axis).
m =1:Margin absolute.
m =2:Margin scaled.
m =3:Axis absolute.
m =4:Axis scaled.
The absolute modes are measured in Points whereas scaled modes have similar values but automatically expand or contract as the font height for the axis changes. Mode 0 is the default and results in no change relative to previous versions of Igor Pro that used lblMargin unless a given side used a free axis in which case it used lblPos in absolute mode. The margin modes measure relative to an edge of the graph while the axis modes measure relative to the position of the axis. When using stacked axes, use either margin modes. With multiple nonstacked axes, use Axis scaled if the graph edge is not using a fixed margin or use axis absolute if it is.
lblRot=rRotates the axis label by r degrees. r is a value from -360 to 360. Rotation is counterclockwise and starts from the label's normal orientation.
linTkLabel=tltl = 1 attaches to each tick label on a normal axis the data units with any exponent or prefix. tl =0 removes them.
In Igor Pro 9.00 and later, tl=2 suppresses the space character normally displayed before units.
log=l
l =0:Normal axis.
l =1:Log base 10.
l =2:Log base 2.
logHTrip=hSame as highTrip but for log axes.
logLabel=ll is maximum number of decades in log axis before minor tick labels are suppressed.
logLTrip=lSame as lowTrip but for log axes.
loglinear=lUsed with a log axis. l = 1 switches to a linear tick method if the number of decades of ranges is less than 2. It switches to a linear tick exponent method if the number of decades is greater than five.
logmtlOffset=oOffsets the minor tick mark labels on a log axis by o fractional points relative to the default tick mark label position. Positive is away from the axis. Added in Igor Pro 9.00.
logTicks=tt is maximum number of decades in log axis before minor ticks are suppressed.
lowTrip=lIf the extrema of an axis are between its lowTrip and its highTrip then tick mark labels use fixed point notation. Otherwise they use exponential (scientific or engineering) notation.
manminor={number, emphasizeEvery}
In manual tick mode, specifies how to draw minor ticks. There will be number ticks between each major (labeled) tick. You will usually want to set this to 4 to make 5 divisions, or 9 to make 10 divisions. A medium-sized tick (an emphasized minor tick) will be drawn every emphasizeEvery minor tick.
manTick={cantick, tickinc, exp, digitsrt [, timeUnit]}
Turns on manual tick mode. The tick from which all other ticks are calculated is the cononic tick (cantick). The numerical spacing between ticks is set by tickinc. cantick and tickinc are multiplied by 10exp. The number of digits to the right of the decimal point displayed in the tick labels is set by digitsrt.
The optional parametertimeUnit is used with Date/Time axes to specify the units of tickinc. In this case, tickinc must be an integer. The value of timeUnit is a keyword as follows:
second
minute
hour
day
week
month
year
On a date/time axis, the exp and digitsrt keywords are ignored, but must be present. You can set them to zero.
manTick=0Turns off manual tick mode.
margin=mm is a fixed margin from the edge of the window to the axis in points. Used principally to make axes of multiple graphs on a page line up when "stacked". You can use the left, right, bottom, and top axis names (even if an axis with that name doesn't exist) to adjust the graph's plot area. See Types of Axes.
m=0:Sets "automatic" margin size (dependent on the length and height of tick marks and labels).
m=-1:Sets the margin to "none", or 0. The axis is drawn at the graph window's edge.
minor=m
m =0:Disables minor ticks.
m =1:Enables minor ticks.
mirror=m
m =0:No mirroring.
m =2:Mirror axis without tick marks.
m =3:Mirror axis with tick marks and tick labels.
m =1:Right axis mirroring left or top mirroring bottom.
mirrorPos=posSpecifies the position of the mirror axis relative to the normal position. pos is a value between 0 and 1.
noLabel=n
n =0:Normal labels.
n =1:Suppress tick mark labels.
n =2:Suppress tick mark labels and axis labels.
notation=n
n =0:Engineering notation.
n =1:Scientific notation.
Affects tick mark labels displayed exponentially. See highTrip and lowTrip.
Does not affect log axes.
nticks=nn =approximate number of ticks marks on axis.
prescaleExp=expMultiplies axis range by 10^exp for tick labeling and exp is subtracted from the axis label exponent. In other words, the exponent is moved from the tick labels to the axis label. (This affects the display only, not the source data.)
sep=ss =minimum number of screen pixels between minor ticks.
standoff=s
s =0:Suppresses axis standoff.
s =1:Enables standoff.
Axis standoff prevents waves or markers from covering the axis.
stLen=pSets the length of minor ("small") tick marks to p points. If p is zero, Igor uses the default length. p may be fractional.
stThick=pSets the thickness of minor ("small") tick marks to p points. If p is zero, Igor uses the default thickness. p may be fractional.
tick=tSets tick position.
t =0:Outside axis.
t =1:Crossing axis.
t =2:Inside axis.
t =3:None.
In a category plot, adding 4 to the usual values for the tick keyword will place the tick marks in the center of each category rather than at the edges.
In a normal (non-category) plot specifying t=4 or t=5 replaces tick marks and axis lines with rectangular regions with alternating fills. This feature, which was added in Igor Pro 8.00, is used for cartographic plots.
t=4 gives even fills and t=5 gives odd fills. The btLen keyword determines the thickness of the fill area.
It is recommended that you use mirror axes and axisOnTop=1 as shown in this example:
Make jack=sin(x/8)
Display jack
ModifyGraph axisOnTop=1
ModifyGraph mirror=1
ModifyGraph standoff=0
ModifyGraph tick=4
tickEnab={lowTick,highTick}
Restricts axis ticking to a subrange of normal. Ticks are drawn and labelled only if they fall within this inclusive numerical range.
tickExp=tete =1 forces tick labels to exponential notation when labels have units with a prefix. te =0 turns this off.
tickUnit=tutu = 1 suppresses units labels attached to tick marks. tu =0 turns them back on.
tickZap={[v1 [, v2 [, v3]]]}
Suppresses drawing of the tick mark label for values given in the list. This is useful when you have crossing axes to prevent tick mark labels from overlapping. The list may contain zero, one, two or three values. The values must be exact to suppress the label.
tkLblRot=rRotates the tick mark labels by r degrees. r is a value from -360 to 360. Rotation is counterclockwise and starts from the label's normal orientation.
tlOffset=oOffsets the tick mark labels by o fractional points relative to the default tick mark label position. Positive is away from the axis.
ttLen=pSets the length of subminor ("tiny") tick marks to p points. If p is zero, Igor uses the default length. p may be fractional. Subminor ticks are used only in log axes.
ttThick=pSets the thickness of subminor ("tiny") tick marks to p points. If p is zero, Igor uses the default thickness. p may be fractional.
userticks={tickPosWave,tickLabelWave}
Draws axes with purely user-defined tick mark positions and labels, overriding other settings. tickPosWave is a numeric wave containing the desired positions of the tick marks, and tickLabelWave is a text wave containing the labels. See User Ticks from Waves for an example.
The tick mark labels can be multiline and use styled text. For more details, see Fancy Tick Mark Labels.
tickPosWave need not be monotonic. Igor will plot a tick if a value is in the range of the axis. Both linear and log axes are supported.
Graph margins will adjust to accommodate the size of tick labels. This will not prevent overlap between labels, which you will need fix yourself.
userticks=0Removes the userticks setting returning the axis to the previously-set mode previously.
useTSep=tt =1 displays a thousand's separator character between every group of three digits in the tick mark label (e.g., "1,000" instead of "1000"). The default is t =0.
zapLZ=tt =1 removes leading zeros from tick mark labels. For example 0.5 becomes .5 and -0.5 becomes -.5. The default is t =0.
zapTZ=tt =1 removes trailing zeros from tick mark labels. The radix point will also be removed if all digits are zero. Default is t =0.
zero=z
z =0:No zero line (the default).
z =1:A zero line at x=0 or y=0.
The line style is set to z-1. See ModifyGraph for Traces, lStyle keyword, for details on line styles.
zeroThick=ztSets the thickness of the zero line in points, from 0.0 to 5.0 points. zt =0.0 means the zero line thickness automatically follows the thickness of the axis; this is the default. You can use 0.1 for a thin zero line thickness.
ZisZ=tt =1 uses the single digit 0 as the zero tick mark label (if any) regardless of the number of digits used for other labels. Default is t =0.

Flags

/W=winNameModifies the named graph window or subwindow. When omitted, action will affect the active window or subwindow. This must be the first flag specified when used in a Proc or Macro or on the command line.
When identifying a subwindow with winName, see Subwindow Syntax for details on forming the window hierarchy.
/ZDoes not generate an error if the named axis does not exist in a style macro.

Details

With the prescaleExp parameter, you can force tick and axis label scaling to values different from the defaults. For example, if you have data whose X scaling ranges from 9pA to 120pA and you display this on a log axis, the tick marks will be labelled 10pA and 100pA. But if you really want the tick marks labeled 10 and 100 with pA in the axis label, you can set the prescaleExp to 12. To see this, execute the following commands:

Make/O jack=x
Display jack
SetScale x,9e-12,120e-12,"A",jack
ModifyGraph log(bottom)=1

then execute:

ModifyGraph prescaleExp(bottom)=12

The tickExp parameter applies to units that do not traditionally use SI prefix characters. For example, one usually speaks of 10^-3 Torr and not mTorr. To see how this feature works, execute the following example commands:

Make/O jack=x
Display jack
SetScale x,1E-7,1E-5,"Torr",jack
ModifyGraph log(bottom)=1

then execute:

ModifyGraph tickExp(bottom)=1

at this point, the tick mark labels have Torr in them. If you want to eliminate the units from the tick marks, execute:

ModifyGraph tickUnit(bottom)=1

and if you now want Torr in the label string, use the \U escape in the label string:

Label bottom "\\U"

To see the effect of linTkLabel, execute these commands:

Make/O jack=x
Display jack
SetScale x,1E-7,1E-5,"Torr",jack

then execute:

ModifyGraph linTkLabel(bottom)=1

and then try:

ModifyGraph tickExp(bottom)=1

and finally:

ModifyGraph tickUnit(bottom)=1

See Also

ModifyGraph (General settings)

ModifyGraph for Traces

ModifyGraph for Colors

Demos

Open Graph Grid Demo

ModifyGraph for Colors

ModifyGraph [/W=winName /Z] [keyword=value, keyword=value, ...]

This section of ModifyGraph relates to modifying the use of colors in a graph.

Parameters

Most of the key parameters may take an optional axisName (abbreviated as ax in the synopsis above) enclosed in parentheses. axisName is "left", "right", "top", "bottom" or the name of an free axis such as "vertCrossing".

Where the parameter descriptions indicate an "(axisName)", it may be omitted to change all axes in the graph.

r, g, b, and a specify the color and opacity as RGBA Values. (0,0,0) specifies opaque black and (65535,65535,65535) specifies opaque white.

Parameter SpecificationObject Colored
alblRGB(axisName)=(r,g,b[,a])Axis labels
axRGB(axisName)=(r,g,b[,a])Axis
cbRGB=(r,g,b[,a])Control bar background
gbGradientSee Gradient Fills for parameters and details.
gbGradientExtraSee Gradient Fills for parameters and details.
gbRGB=(r,g,b[,a])Graph background
gridRGB(axisName)=(r,g,b[,a])Axis grid lines
tickRGB(axisName)=(r,g,b[,a])Axis tick marks
tlblRGB(axisName)=(r,g,b[,a])Axis tick labels
wbGradientSee Gradient Fills for parameters and details.
wbGradientExtraSee Gradient Fills for parameters and details.
wbRGB=(r,g,b[,a])Window background

Flags

/W=winNameModifies the named graph window or subwindow. When omitted, action will affect the active window or subwindow. This must be the first flag specified when used in a Proc or Macro or on the command line.
When identifying a subwindow with winName, see Subwindow Syntax for details on forming the window hierarchy.
/ZDoes not generate an error if the named axis does not exist in a style macro.

Details

On Windows, use maximum white to set the control bar background color to track the 3D Objects color in the Appearance Tab of the Display Properties control panel:

ModifyGraph cbRGB=(65535,65535,65535)

See Also

ModifyGraph (General settings)

ModifyGraph for Traces

ModifyGraph for Axes

Controls in Graphs