diff options
author | James LewisMoss <dres@debian.org> | 1999-12-06 19:32:57 -0500 |
---|---|---|
committer | Bryan Newbold <bnewbold@robocracy.org> | 2017-02-20 00:05:28 -0800 |
commit | c394920caedf3dac1981bb6b10eeb47fd6e4bb21 (patch) | |
tree | f21194653a3554f747dde3df908df993c48db5a0 /charplot.scm | |
parent | 926b1b647ac830660933a5e63eb52d4a2552e264 (diff) | |
parent | bd9733926076885e3417b74de76e4c9c7bc56254 (diff) | |
download | slib-c394920caedf3dac1981bb6b10eeb47fd6e4bb21.tar.gz slib-c394920caedf3dac1981bb6b10eeb47fd6e4bb21.zip |
Import Debian changes 2c7-1debian/2c7-1
slib (2c7-1) unstable; urgency=low
* New upstream.
* Add slibconfig back in.
slib (2c6-2) unstable; urgency=low
* Remove the slib$(VERSION).info file. Cut the diff back down to
size.
slib (2c6-1) unstable; urgency=low
* New upstream.
* Move docs to /usr/share. Up standards version. add /usr/doc symlink.
Move info files. Remove undocumented link.
slib (2c5-6) unstable; urgency=low
* Lowercase two vars in yasyn.scm (Fixes bug #37222)
slib (2c5-5) unstable; urgency=low
* Fix it so string-index isn't defined (now there is a
strsrch:string-index) (Fixes #38812)
slib (2c5-4) unstable; urgency=low
* Don't run slibconfig in postinst. (Fixes bug #38253, #37733, #37715,
#37746, #37809, #37917, #38123, #38462)
slib (2c5-3) unstable; urgency=low
* Run slibconfig in postinst. It was commented out there, but I don't
see any old bug reports on why it was commented out, so let's try
again. :) (Fixes bug #37221)
slib (2c5-2) unstable; urgency=low
* Link mklibcat.scm to mklibcat. Fixes a problem with using slib with
guile.
slib (2c5-1) unstable; urgency=low
* New upstream.
slib (2c3-4) unstable; urgency=low
* New maintainer.
Diffstat (limited to 'charplot.scm')
-rw-r--r-- | charplot.scm | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/charplot.scm b/charplot.scm index 2a2a49a..2c64615 100644 --- a/charplot.scm +++ b/charplot.scm @@ -18,6 +18,7 @@ ;each case. (require 'sort) +(require 'printf) (define charplot:rows 24) (define charplot:columns (output-port-width (current-output-port))) @@ -43,6 +44,9 @@ (display str) (charplot:printn! (- width (+ (string-length str) lpad)) #\ ))) +(define (charplot:number->string x) + (sprintf #f "%g" x)) + (define (scale-it z scale) (if (and (exact? z) (integer? z)) (quotient (* z (car scale)) (cadr scale)) @@ -86,8 +90,8 @@ (string-set! a (caar data) charplot:curve1) (set! data (cdr data))) (if (zero? (modulo (- ht xaxis) ystep)) - (let* ((v (number->string (/ (* (- ht xaxis) (cadr yscale)) - (car yscale)))) + (let* ((v (charplot:number->string (/ (* (- ht xaxis) (cadr yscale)) + (car yscale)))) (l (string-length v))) (if (> l 10) (display (substring v 0 10)) @@ -119,12 +123,16 @@ (charplot:center-print! xlabel (+ 12 fudge (- xstep/2))) (do ((i fudge (+ i xstep))) ((> (+ i xstep) charplot:width)) - (charplot:center-print! (number->string (/ (* (- i yaxis) (cadr xscale)) - (car xscale))) + (charplot:center-print! (charplot:number->string + (/ (* (- i yaxis) (cadr xscale)) + (car xscale))) xstep)) (newline))) (define (charplot:plot! data xlabel ylabel) + (cond ((array? data) + (set! data (map (lambda (lst) (cons (car lst) (cadr lst))) + (array->list data))))) (let* ((xmax (apply max (map car data))) (xmin (apply min (map car data))) (xscale (find-scale charplot:width (- xmax xmin))) @@ -139,4 +147,14 @@ data) xlabel ylabel xmin xscale ymin yscale))) +(define (plot-function func vlo vhi . npts) + (set! npts (if (null? npts) 100 (car npts))) + (let ((dats (make-array 0.0 npts 2))) + (array-index-map! (make-shared-array dats (lambda (idx) (list idx 0)) npts) + (lambda (idx) (+ vlo (* (- vhi vlo) (/ idx npts))))) + (array-map! (make-shared-array dats (lambda (idx) (list idx 1)) npts) + func + (make-shared-array dats (lambda (idx) (list idx 0)) npts)) + (charplot:plot! dats "" ""))) + (define plot! charplot:plot!) |