#!../blt_wish -f if [file exists ../library] { set blt_library ../library } option add *Blt_htext.Font *Times-Bold-R*14* option add *graph.xTitle "X Axis Label" option add *graph.yTitle "Y Axis Label" option add *graph.title "A Simple XY Graph" option add *graph.elemBackground red set visual [winfo screenvisual .] if { $visual != "staticgray" } { option add *print.background yellow option add *quit.background red } proc ConfigureGraph { interp graph } { exec ../blt_wish -name GraphConfig -f ./grconf.tcl $interp $graph & } set remote {} global graph set graph .graph blt_htext .header -text {%% %%This is an example of the blt_graph widget. It displays two-variable data with assorted line attributes and symbols. The graph itself has many components; x and y axis, legend, crosshairs, elements, etc. You can configure any component by pressing this %% button $blt_htext(widget).config -text button -bg green \ -command [list ConfigureGraph [winfo name .] $graph] $blt_htext(widget) append $blt_htext(widget).config %%. To create a postscript file "xy.ps", press the %% button $blt_htext(widget).print -text print -command { .graph postscript xy.ps -pagewidth 6.5i -pageheight 9i -landscape true } $blt_htext(widget) append $blt_htext(widget).print %% button.} blt_graph $graph blt_htext .footer -text {Hit the %% button $blt_htext(widget).quit -text quit -command { catch "send GraphConfig after 1 exit" destroy . } $blt_htext(widget) append $blt_htext(widget).quit %% button when you've seen enough.%% label $blt_htext(widget).logo -bitmap BLT $blt_htext(widget) append $blt_htext(widget).logo -padx 20 %%} set X { 2.00000e-01 4.00000e-01 6.00000e-01 8.00000e-01 1.00000e+00 1.20000e+00 1.40000e+00 1.60000e+00 1.80000e+00 2.00000e+00 2.20000e+00 2.40000e+00 2.60000e+00 2.80000e+00 3.00000e+00 3.20000e+00 3.40000e+00 3.60000e+00 3.80000e+00 4.00000e+00 4.20000e+00 4.40000e+00 4.60000e+00 4.80000e+00 5.00000e+00 } set Y1 { 1.14471e+01 2.09373e+01 2.84608e+01 3.40080e+01 3.75691e+01 3.91345e+01 3.92706e+01 3.93474e+01 3.94242e+01 3.95010e+01 3.95778e+01 3.96545e+01 3.97313e+01 3.98081e+01 3.98849e+01 3.99617e+01 4.00384e+01 4.01152e+01 4.01920e+01 4.02688e+01 4.03455e+01 4.04223e+01 4.04990e+01 4.05758e+01 4.06526e+01 } set Y2 { 2.61825e+01 5.04696e+01 7.28517e+01 9.33192e+01 1.11863e+02 1.28473e+02 1.43140e+02 1.55854e+02 1.66606e+02 1.75386e+02 1.82185e+02 1.86994e+02 1.89802e+02 1.90683e+02 1.91047e+02 1.91411e+02 1.91775e+02 1.92139e+02 1.92503e+02 1.92867e+02 1.93231e+02 1.93595e+02 1.93958e+02 1.94322e+02 1.94686e+02 } set Y3 { 4.07008e+01 7.95658e+01 1.16585e+02 1.51750e+02 1.85051e+02 2.16479e+02 2.46024e+02 2.73676e+02 2.99427e+02 3.23267e+02 3.45187e+02 3.65177e+02 3.83228e+02 3.99331e+02 4.13476e+02 4.25655e+02 4.35856e+02 4.44073e+02 4.50294e+02 4.54512e+02 4.56716e+02 4.57596e+02 4.58448e+02 4.59299e+02 4.60151e+02 } $graph element create line1 -xdata $X -ydata $Y2 \ -symbol cross -linewidth 1 $graph element create line2 -xdata $X -ydata $Y3 \ -symbol square -linewidth 1 $graph element create line3 -xdata $X -ydata $Y1 \ -symbol plus -linewidth 1 #$graph crosshairs set on pack append . \ .header { padx 20 pady 10 } \ .graph {} \ .footer { padx 20 pady 10 } wm min . 0 0 source features.tcl #SetCrosshairs $graph SetActiveLegend $graph SetClosestPoint $graph SetZoom $graph wm min . 0 0