1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
#!../src/bltwish
package require BLT
set graph .graph
option add *x.Title "X Axis"
option add *y.Title "Y Axis"
option add *LineMarker.Foreground yellow
blt::htext .header -text \
{ This is an example of the barchart widget. The barchart has
many components; x and y axis, legend, crosshairs, elements, etc.
To create a postscript file "bar.ps", press the %%
set w $htext(widget)
button $w.print -text {Print} -command {
$graph postscript output bar.ps
}
$w append $w.print
%% button.
}
blt::barchart $graph -background white
$graph axis configure x -stepsize 0
blt::htext .footer -text { Hit the %%
set im [image create picture -file ./images/stopsign.gif]
button $htext(widget).quit -image $im -command { exit }
$htext(widget) append $htext(widget).quit -pady 2
%% button when you've seen enough. %%
label $htext(widget).logo -bitmap BLT
$htext(widget) append $htext(widget).logo
%%}
set attributes {
red
orange
yellow
green
blue
cyan
magenta
violetred
purple
lightblue
}
set count 0
foreach color $attributes {
$graph pen create pen$count \
-fill ${color}1 \
-outline ${color}4 \
-relief solid \
-borderwidth 1
lappend styles [list pen$count $count $count]
incr count
}
blt::vector x y w
x linspace 0 800 400
y expr sin(x)*90.0
w expr round(y*20.0)%$count
y expr y+10.0
$graph element create data -label {} \
-x x -y y -weight w -styles $styles
blt::table . \
0,0 .header -fill x \
1,0 .graph -fill both \
2,0 .footer -fill x
blt::table configure . r0 r2 -resize none
wm min . 0 0
Blt_ZoomStack $graph
Blt_Crosshairs $graph
Blt_ActiveLegend $graph
Blt_ClosestPoint $graph
|