A graph window is comprised of a visual page, with an associated Page (Object). Each graph page contains at least one visual layer, with an associated layer object. The graph layer contains a set of X Y axes with associated layer.x and layer.y objects, which are sub-objects of the layer object.
![]() | When you have a range variable mapped to a graph page or graph layer, you can use that variable name in place of the word page or layer. |
The page object is used to access and modify properties of the active graph window. To output a list of all properties of this object:
page.=
The list will contain both numeric and text properties. When setting a text (string) property value, the $ follows the property name.
To read the Short name of the active window:
page.name$="Graph3";
To read the Long name of the active window:
page.longname$="This name can contain spaces";
You can also access Graph properties
or attributes using a range variable instead of the page object. The advantage is that using a range variable works whether or not the desired graph is active.The example below sets the active graph layer to layer 2, using a range variable to point to the desired graph by name. Once declared, the range variable can be used in place of page:
//Create a Range variable that points to your graph range rGraph = [Graph3]; //The range now has properties of the page object rGraph.active=2;
The layer object is used to access and modify properties of the graph layer.
To set the graph layer dimensions:
//Set the layer area units to cm layer.unit=3; //Set the Width layer.width=5; //Set the Height layer.height=5;
The laycolor X-Function is used to fill the layer background color. The value you pass to the function for color, corresponds to Origin's color list as seen in the Plot Details dialog (1=black, 2=red, 3=green, etc).
To fill the background color of layer 1 as green:
laycolor layer:=1 color:=3;
The speedmode X-Function is used to set layer speed mode properties.
The legendupdate X-Function is used to update or reconstruct the graph legend on the page/layer.
The layer.x and layer.y sub-object of the layer object is used to modify properties of the axes.
To modify the X scale of the active layer:
//Set the scale to Log10 layer.x.type = 2; //Set the start value layer.x.from = .001; //Set the end value layer.x.to = 1000; //Set the increment value layer.x.inc = 2;
![]() | If you wish to work with the Y scale, then simply change the x in the above script to a y. If you wish to work with a layer that is not active, you can specify the layer index, layerN.x.from. Example: layer3.y.from = 0; |
The Axis command can also be used to access the settings in the Axis dialog.
To change the X Axis Tick Labels to use the values from column C, given a plot of col(B) vs. col(A) with text in col(C), from Sheet1 of Book1:
range aa = [Book1]Sheet1!col(C); axis -ps X T aa;
The Set (Command) is used to change the attributes of a data plot. The following example shows how the Set command works by changing the properties of the same dataplot several times. In the script, we use sec command to pause one second before changing plot styles.
// Make up some data newbook; col(a) = {1:5}; col(b) = col(a); // Create a scatter plot plotxy col(b); // Set symbol size // %C is the active dataset sec -p 1; set %C -z 20; // Set symbol shape sec -p 1; set %C -k 3; // Set symbol color sec -p 1; set %C -c color(blue); // Connect the symbols sec -p 1; set %C -l 1; // Change plot line color sec -p 1; set %C -cl color(red); // Set line width to 4 points sec -p 1; set %C -w 2000; // Change solid line to dash sec -p 1; set %C -d 1;
Here is another example which plots into a template, DoubleY, with two layers, and then sets dataplot style for the dataplot in the second layer:
// Importing data newbook; string fn$=system.path.program$ + "Samples\Curve Fitting\Enzyme.dat"; impasc fname:=fn$; //declare active worksheet range range rr = !; //plot into a template plotxy iy:=(1,2) plot:=200 ogl:=[<new template:=DoubleY>]; //plot into second layer of active graph, which is graph created from line above plotxy iy:=%(rr)(1,3) plot:=200 ogl:=2!; //declare range for first dataplot in layer 2 range r2 = 2!1; //set line to dash set r2 -d 1;
Formatting the Legend and Label are discussed on Creating and Accessing Graphical Objects.