| PlotFunc | TCL UTILITIES USER MANUAL | PlotFunc |
|---|
| PlotFunc  |
|
| wID | - | The window identifier of the window in which to output the plot. |
| pID | - | The plot identifier to associate with the plot. |
| FmT | - | The input format of the function being plotted. This is either ALGORITHM or PROCEDURE depending on whether the input is given as an algebraic formula or as a procedure which takes X as an input and returns Y. |
| FunC | - | The input function. If FmT is ALGORITHM then this is algebraic algorithm with $X used as the variable. If FmT is PROCEDURE then this is the name of a procedure which accepts X as an input an returns Y. |
| BeG | - | The starting X value to use in the function definition. |
| EnD | - | The ending X value to use in the function definition. |
| dX | - | The step size to use when advancing X from BeG to EnD. |
| PoPs | - | An array of plot options which are accepted by the procedure. The complete list of options is given in the procedure description below. |
proc Gaussian { X } {
...
return $Y
}
The Y array within PlotFunc is obtained by solving the input
function by stepping X from BeG to EnD with a step
size dX.| INDEX | DEFAULT | DESCRIPTION |
|---|---|---|
| XLAB | "" | The X axis label. |
| YLAB | "" | The Y axis label. |
| NCOL | 255 | Color to use for numerical labels. Can be any value from 0 to 255. |
| LCOL | 255 | Color to use for axis text labels. Can be any value from 0 to 255. |
| PSET | YES | Output and annotate the plot axes. Must be either YES or NO. |
| XAS | NO | Autoscale the X axis. Must be either YES or NO. |
| YAS | YES | Autoscale the Y axis. Must be either YES or NO. |
| XASOP | "" | The AutoScale option array to use when auto scaling the X axis. |
| YASOP | "" | The AutoScale option array to use when auto scaling the Y axis. |
| PFMT | LINE | The plot format. Must be LINE, SCATTER, or HISTOGRAM" |
| POPS | [list 255] | The plot option list to pass into the Plot2D call. |
| AX | Xb | The X axis to plot against. Must be either Xb or Xt. |
| AY | Yb | The Y axis to plot against. Must be either Yl or Yr. |
| XTIC | BOTH | Put up tick marks on both sets of X axes. If you are plan to plot against both sets of axes then this should be set to "". |
| YTIC | BOTH | Put up tick marks on both sets of Y axes. If you are plan to plot against both sets of axes then this should be set to "". |
# READ the GUI preference settings
GUIprefsRead
# SET a window size
set GphInfo(xsScrL) 600
set GphInfo(ysScrL) 500
set GphInfo(xScrL) 600
set GphInfo(yScrL) 500
# Define a procedure which returns a trig function. This could be done
# as an algorithm in PlotFunc also but this shows how to use a
# procedure as input.
proc Trig { A } {
global RtoD
set A [expr $A / $RtoD]
set Y [expr cos($A) - sin(2 * $A) + cos(5.0 * $A)]
return $Y
}
# START graphics
GraphicsOn TK RainBow
# ESTABLISH 2 graphics windows which will contain plots The first one
# has its secondary Y axis (Yr) LOG scaled.
GenWindow 1 0.15 0.10 0.0 0.85 0.50 0.0 -6.0 1.0 0.0 6.0 10 0.0
SetAxis 1 SECONDARY HOLD .01 HOLD HOLD 1.0 HOLD HOLD LOG HOLD 0
GenWindow 2 0.15 0.55 0.0 0.85 0.95 0.0 0.0 1.0 0.0 360.0 10 0.0
# DEFINE an algorithmic expression to plot.
set InPuT "exp(-(\$X - 1.0) * (\$X - 1.0)/2.0)"
# SET all of the plot annotation in both plots to be 10pt
PLTinfoChg 1 ALL NUMBERS NSIZE 10
PLTinfoChg 1 ALL NUMBERS TSIZE 10
PLTinfoChg 2 ALL NUMBERS NSIZE 10
PLTinfoChg 2 ALL NUMBERS TSIZE 10
# START with the lower plot on the canvas. Only output the tick marks
# associated with the plot axis and also define some axis labels.
set P(YTIC) ""
set P(YLAB) YLABA
set P(XLAB) XLAB
# OUTPUT the plot
PlotFunc 1 1 ALGORITHM $InPuT -6.0 6.0 0.2 P
# PLOT the same data set against Yr - the log scaled axis. Turn off the
# XLAB since we already labeled the axis, change the YLAB, set the
# Y plot axis to Yr and change the plot color.
set P(YLAB) YLABB
set P(XLAB) ""
set P(AY) Yr
set P(POPS) [list $GphInfo(Yellow)]
# OUTPUT the plot
PlotFunc 1 1 ALGORITHM $InPuT -6.0 6.0 0.2 P
# NOW plot something in the upper window definition. Change the Y axis
# we are plotting against back to Yl, want to put tick marks on both
# Y axes, assign a Y axis label, and set the plot color back to white.
set P(AY) Yl
set P(YTIC) BOTH
set P(YLAB) YLABC
set P(POPS) [list $GphInfo(White)]
# OUTPUT the plot
PlotFunc 2 2 PROCEDURE Trig 0.0 360.0 1.0 P
| Apr 7, 2007 |
|---|