home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Garbo
/
Garbo.cdr
/
mac
/
science
/
xlspstr1.sit
/
Examples
/
regdemo.lsp
< prev
next >
Wrap
Text File
|
1990-02-27
|
1KB
|
39 lines
;; set up some simulated data
(def x (append (iseq 1 18) (list 30 40)))
(def y (+ x (* 2 (normal-rand 20))))
;; construct the plot
(def myplot (plot-points x y))
;; add a new "mouse mode", with menu title, cusror and mouse method name
(send myplot :add-mouse-mode 'point-moving
:title "Point Moving"
:cursor 'finger
:click :do-point-moving)
;; add the new mouse method
(defmeth myplot :do-point-moving (x y a b)
(let ((p (send self :drag-point x y :draw nil)))
(if p (send self :set-regression-line))))
;; add method for drawing the regression line for the current data
(defmeth myplot :set-regression-line ()
(let ((coefs (send self :calculate-coefficients)))
(send self :clear-lines :draw nil)
(send self :abline (select coefs 0) (select coefs 1))))
;; add method for calculating regression coefficients for current data
(defmeth myplot :calculate-coefficients ()
(let* ((i (iseq 0 (- (send self :num-points) 1)))
(x (send self :point-coordinate 0 i))
(y (send self :point-coordinate 1 i))
(m (regression-model x y :print nil)))
(send m :coef-estimates)))
;; add the regression line
(send myplot :set-regression-line)
;; put the plot in "point moving" mode
(send myplot :mouse-mode 'point-moving)