File: plot.ss

package info (click to toggle)
drscheme 1%3A352-6
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 71,608 kB
  • ctags: 55,284
  • sloc: ansic: 278,966; cpp: 63,318; sh: 32,265; lisp: 14,530; asm: 7,327; makefile: 4,846; pascal: 4,363; perl: 2,920; java: 1,632; yacc: 755; lex: 258; sed: 93; xml: 12
file content (94 lines) | stat: -rw-r--r-- 2,099 bytes parent folder | download
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
83
84
85
86
87
88
89
90
91
92
93
94
(module plot mzscheme
  (require
   (lib "list.ss")
   (lib "etc.ss")
   (lib "math.ss" "plot")
   (lib "view.ss" "plot")
   (lib "renderer-helpers.ss" "plot")
   (lib "renderers.ss" "plot")
   (lib "fit.ss" "plot")
   (lib "class.ss"))

  ; plot : plottable (option value)*
  (define-syntax plot
    (syntax-rules ()
      [(_ ren )
       (instantiate 2d-view% () (renderer ren))]
      [(_ ren (option value) ...)
       (instantiate 2d-view% () (renderer ren) (option value) ...)]))

  (define-syntax plot3d
    (syntax-rules ()
      [(_ ren )
       (instantiate 3d-view% () (renderer ren))]
      [(_ ren (option value) ...)
       (instantiate 3d-view% () (renderer ren) (option value) ...)]))

  ; mix-int : renderer renderer -> renderer
  ; creates a renderer that will renderer both of the inputs
  (define (mix-int renderer1 renderer2)
    (lambda (view)
      (send view reset-to-default)
      (renderer1 view)
      (send view reset-to-default)
      (renderer2 view)))

  ; mix : renderer+ -> renderer
  ; combine any number of renderers
  (define (mix r1 . the-rest)
    (if (empty? the-rest) 
        r1
        (mix-int r1 (apply mix the-rest))))

  ; make-2d-renderer : (2d-view% -> void)
  ; provides a user with the ability to create their own renderers
  ; without providing the implimentation
  (define custom identity)

  ;;
  (define-syntax fit
    (syntax-rules ()
      [(_ func ((param guess) ...) data)
       (fit-int func 
                '((param guess) ...)
                data)]))

  (provide

   ;fitting
   fit
   (struct fit-result (rms
                             variance
                             names
                             final-params
                             std-error
                             std-error-percent
                             function))
   ; to make plots
   plot
   plot3d

   ; to combine/create renderers
   mix
   custom

   ; 2d-renderers
   error-bars
   points
   line
   vector-field
   contour
   shade
   ; 3d-rendereres
   surface
   mesh3d

   ; from math-tools
   derivative
   gradient
   make-vec


))