home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / lang / lisp / stk-3.0 / stk-3 / blt-for-STk-3.0 / Demos / graph.stk < prev    next >
Encoding:
Text File  |  1995-12-26  |  3.0 KB  |  84 lines

  1. (set! *load-path* (cons ".." *load-path*))
  2. (require "blt")
  3.  
  4.  
  5. (define global list)     ;; Kludge
  6.  
  7.  
  8. (option 'add "*Blt_htext.Font" "*Times-Bold-R*14*")
  9. (option 'add "*graph.xTitle" "X Axis Label")
  10. (option 'add "*graph.yTitle" "Y Axis Label")
  11. (option 'add "*graph.title" "A Simple XY Graph")
  12. (option 'add "*graph.elemBackground" "red")
  13.  
  14. (let ((visual (winfo 'screenvisual *root*)))
  15.   (unless (or (eq? visual 'staticgray) (eq? visual 'grayscale))
  16.       (option 'add "*print.background" "yellow")
  17.       (option 'add "*quit.background"  "red")))
  18.  
  19. ;;;;
  20. ;;;; Header hypertext
  21. ;;;;
  22. (blt_htext '.header :text "This is an example of the blt_graph widget.
  23. It displays two-variable data with assorted line attributes and symbols.
  24. The graph itself has many components; x and y axis, legend, crosshairs, 
  25. elements, etc.
  26.  
  27. To create a postscript file \"xy.ps\", press the %%BEGIN
  28. (button '.header.print :text \"Print\"
  29.                    :command  '(.graph 'postscript \"xy.ps\"
  30.                       :pagewidth '6.5i
  31.                       :pageheight '9i
  32.                       :landscape #t))
  33. (.header 'append .header.print)
  34. %% button.")
  35.  
  36.  
  37. ;;;;" 
  38. ;;;; The graph
  39. ;;;;
  40. (blt_graph '.graph)
  41.  
  42.  
  43. ;;;;
  44. ;;;; Footer hypertext
  45. ;;;;
  46. (blt_htext '.footer :text "Hit the %%BEGIN
  47. (button '.footer.quit :text \"quit\" :command '(destroy *root*))
  48. (.footer 'append .footer.quit)
  49. %% button when you've seen enough.%%BEGIN
  50. (label '.footer.logo :bitmap '|BLT|)
  51. (.footer 'append .footer.logo :padx 20)
  52. %%")
  53.  
  54. ;;;;"
  55. ;;;; Data
  56. ;;;;
  57. (let ((X  "2.00000e-01 4.00000e-01 6.00000e-01 8.00000e-01 1.00000e+00 
  58.         1.20000e+00 1.40000e+00 1.60000e+00 1.80000e+00 2.00000e+00 
  59.         2.20000e+00 2.40000e+00 2.60000e+00 2.80000e+00 3.00000e+00 
  60.         3.20000e+00 3.40000e+00 3.60000e+00 3.80000e+00 4.00000e+00 
  61.         4.20000e+00 4.40000e+00 4.60000e+00 4.80000e+00 5.00000e+00")
  62.       (Y1 "1.14471e+01 2.09373e+01 2.84608e+01 3.40080e+01 3.75691e+01 
  63.         3.91345e+01 3.92706e+01 3.93474e+01 3.94242e+01 3.95010e+01 
  64.         3.95778e+01 3.96545e+01 3.97313e+01 3.98081e+01 3.98849e+01 
  65.         3.99617e+01 4.00384e+01 4.01152e+01 4.01920e+01 4.02688e+01 
  66.         4.03455e+01 4.04223e+01 4.04990e+01 4.05758e+01 4.06526e+01")
  67.       (Y2 "2.61825e+01 5.04696e+01 7.28517e+01 9.33192e+01 1.11863e+02 
  68.         1.28473e+02 1.43140e+02 1.55854e+02 1.66606e+02 1.75386e+02 
  69.         1.82185e+02 1.86994e+02 1.89802e+02 1.90683e+02 1.91047e+02 
  70.         1.91411e+02 1.91775e+02 1.92139e+02 1.92503e+02 1.92867e+02 
  71.         1.93231e+02 1.93595e+02 1.93958e+02 1.94322e+02 1.94686e+02")
  72.       (Y3 "4.07008e+01 7.95658e+01 1.16585e+02 1.51750e+02 1.85051e+02 
  73.         2.16479e+02 2.46024e+02 2.73676e+02 2.99427e+02 3.23267e+02 
  74.         3.45187e+02 3.65177e+02 3.83228e+02 3.99331e+02 4.13476e+02 
  75.         4.25655e+02 4.35856e+02 4.44073e+02 4.50294e+02 4.54512e+02 
  76.         4.56716e+02 4.57596e+02 4.58448e+02 4.59299e+02 4.60151e+02"))
  77.  
  78.   (.graph 'element 'create 'line1 :xdata X :ydata Y1 :symbol 'cross  :linewidth 1)
  79.   (.graph 'element 'create 'line2 :xdata X :ydata Y2 :symbol 'square :linewidth 1)
  80.   (.graph 'element 'create 'line3 :xdata X :ydata Y3 :symbol 'plus   :linewidth 1))
  81.  
  82. (pack .header .graph .footer :padx 20 :pady 20)
  83.  
  84.