22417
((3) 0 () 10 ((q lib "plot/main.rkt") (q lib "plot/utils.rkt") (q 89965 . 7) (q 86289 . 5) (q lib "plot/compat.rkt") (q 74266 . 5) (q 83262 . 5) (q 89518 . 5) (q 82834 . 5) (q 82970 . 4)) () (h ! (equal) ((c def c (c (? . 0) q rectangle3d-line-width)) q (101945 . 5)) ((c def c (c (? . 0) q plot-font-family)) q (91727 . 5)) ((c def c (c (? . 0) q interval-line2-width)) q (96670 . 5)) ((c def c (c (? . 1) q vrational?)) q (89450 . 3)) ((c def c (c (? . 0) q ticks-layout/c)) q (83079 . 3)) ((c def c (c (? . 0) q y-axis-alpha)) q (103608 . 5)) ((c def c (c (? . 0) q log-ticks)) q (75880 . 6)) ((c def c (c (? . 0) q plot-legend-anchor)) q (91960 . 5)) ((c def c (c (? . 1) q known-point-symbols)) q (110683 . 22)) ((c def c (c (? . 0) q hand-drawn-transform)) q (72019 . 3)) ((c def c (c (? . 0) q log-ticks-format)) q (75760 . 3)) ((c def c (c (? . 1) q struct:plot-time)) c (? . 2)) ((c def c (c (? . 1) q vmag)) q (89228 . 3)) ((c def c (c (? . 0) q contour-alphas)) q (100505 . 5)) ((c def c (c (? . 0) q contours)) q (23625 . 26)) ((c def c (c (? . 0) q plot3d-frame)) q (45429 . 3)) ((c def c (c (? . 0) q invertible-inverse)) q (83605 . 5)) ((c def c (c (? . 0) q plot3d-ambient-light)) q (106053 . 5)) ((c def c (c (? . 0) q invertible-function)) c (? . 6)) ((c def c (c (? . 0) q x-ticks)) q (70247 . 4)) ((c def c (c (? . 0) q z-axis-far?)) q (104030 . 5)) ((c def c (c (? . 0) q error-bars)) q (6157 . 21)) ((c def c (c (? . 0) q default-isosurface-colors)) q (107713 . 5)) ((c def c (c (? . 0) q polar-axes-labels?)) q (105155 . 5)) ((c def c (c (? . 0) q contour-widths)) q (100170 . 5)) ((c def c (c (? . 1) q maybe-apply)) q (112505 . 4)) ((c def c (c (? . 0) q time-ticks-formats)) q (78266 . 5)) ((c def c (c (? . 1) q point-sym/c)) q (110575 . 3)) ((c def c (c (? . 0) q plot-file)) q (1334 . 10)) ((c def c (c (? . 1) q struct:mapped-function)) c (? . 3)) ((c def c (c (? . 0) q isosurface-levels)) q (108154 . 6)) ((c def c (c (? . 0) q plot3d-pict)) q (45034 . 3)) ((c def c (c (? . 0) q contour-levels)) q (99790 . 6)) ((c def c (c (? . 1) q plot-time-minute)) c (? . 2)) ((c def c (c (? . 0) q plot3d/dc)) q (45563 . 39)) ((c def c (c (? . 0) q polar-axes-number)) q (104769 . 5)) ((c def c (c (? . 0) q make-ticks)) c (? . 5)) ((c def c (c (? . 0) q plot3d-specular-light?)) q (106306 . 5)) ((c def c (c (? . 0) q plot-pict)) q (1848 . 3)) ((c def c (c (? . 0) q plot3d-bitmap)) q (45155 . 3)) ((c def c (c (? . 0) q label-anchor)) q (105272 . 5)) ((c def c (c (? . 4) q mix)) q (120836 . 3)) ((c def c (c (? . 1) q plot-pen-styles/c)) q (112752 . 4)) ((c def c (c (? . 0) q isosurface-styles)) q (108549 . 5)) ((c def c (c (? . 0) q plot-y-ticks)) q (73197 . 5)) ((c def c (c (? . 1) q ->color)) q (87313 . 3)) ((c def c (c (? . 0) q plot-height)) q (90719 . 5)) ((c def c (c (? . 0) q point-color)) q (97147 . 5)) ((c def c (c (? . 0) q vector-field-scale)) q (98111 . 6)) ((c def c (c (? . 0) q z-axis-labels?)) q (104660 . 5)) ((c def c (c (? . 0) q plot-x-far-tick-label-anchor)) q (93706 . 5)) ((c def c (c (? . 0) q plot-line-width)) q (91852 . 5)) ((c def c (c (? . 1) q mapped-function)) c (? . 3)) ((c def c (c (? . 0) q interval-line1-color)) q (96167 . 5)) ((c def c (c (? . 1) q ivl-max)) c (? . 7)) ((c def c (c (? . 0) q area-histogram)) q (27824 . 29)) ((c def c (c (? . 1) q make-plot-time)) c (? . 2)) ((c def c (c (? . 0) q x-axis-ticks?)) q (104127 . 5)) ((c def c (c (? . 4) q surface)) q (120482 . 10)) ((c def c (c (? . 0) q axes)) q (34092 . 17)) ((c def c (c (? . 0) q contour-ticks)) q (73675 . 11)) ((c def c (c (? . 0) q ticks-layout)) c (? . 5)) ((c def c (c (? . 0) q vector-field3d-samples)) q (98428 . 5)) ((c def c (c (? . 0) q polar3d)) q (54114 . 31)) ((c def c (c (? . 0) q tick-label)) c (? . 9)) ((c def c (c (? . 1) q renderer3d?)) q (109505 . 3)) ((c def c (c (? . 4) q line)) q (118338 . 18)) ((c def c (c (? . 0) q plot-r-ticks)) q (74157 . 5)) ((c def c (c (? . 0) q 12h-descending-date-ticks-formats)) q (77295 . 18)) ((c def c (c (? . 0) q ticks?)) c (? . 5)) ((c def c (c (? . 0) q plot-background-alpha)) q (91490 . 5)) ((c def c (c (? . 0) q plot-z-axis?)) q (94652 . 5)) ((c def c (c (? . 1) q ceiling-log/base)) q (87931 . 4)) ((c def c (c (? . 0) q plot-y-far-axis?)) q (94543 . 5)) ((c def c (c (? . 0) q x-axis-alpha)) q (103494 . 5)) ((c def c (c (? . 1) q 3d-polar->3d-cartesian)) q (87798 . 5)) ((c def c (c (? . 0) q plot-z-label)) q (92698 . 5)) ((c def c (c (? . 0) q plot3d-snip)) q (45291 . 3)) ((c def c (c (? . 1) q anchor/c)) q (109636 . 5)) ((c def c (c (? . 0) q stacked-histogram-styles)) q (103321 . 5)) ((c def c (c (? . 0) q log-ticks-layout)) q (75525 . 5)) ((c def c (c (? . 0) q no-ticks-format)) q (80932 . 4)) ((c def c (c (? . 0) q line-style)) q (95699 . 5)) ((c def c (c (? . 0) q isosurface-line-styles)) q (109100 . 5)) ((c def c (c (? . 0) q animated-samples)) q (94979 . 5)) ((c def c (c (? . 0) q surface-line-width)) q (106786 . 5)) ((c def c (c (? . 1) q color/c)) q (109840 . 5)) ((c def c (c (? . 0) q plot-jpeg-quality)) q (90851 . 5)) ((c def c (c (? . 0) q plot-y-axis?)) q (94442 . 5)) ((c def c (c (? . 1) q maybe-inexact->exact)) q (88167 . 3)) ((c def c (c (? . 0) q contour-interval-colors)) q (100652 . 5)) ((c def c (c (? . 0) q ticks-scale)) q (82740 . 4)) ((c def c (c (? . 0) q rectangle-line-width)) q (101570 . 5)) ((c def c (c (? . 0) q date-ticks)) q (76449 . 7)) ((c def c (c (? . 0) q fraction-ticks)) q (82163 . 7)) ((c def c (c (? . 0) q linear-scale)) q (83777 . 6)) ((c def c (c (? . 0) q make-axis-transform)) q (72689 . 3)) ((c def c (c (? . 0) q vector-field3d)) q (48721 . 31)) ((c def c (c (? . 0) q surface-color)) q (106429 . 5)) ((c def c (c (? . 0) q plot-x-axis?)) q (94232 . 5)) ((c def c (c (? . 4) q plot)) q (115351 . 29)) ((c def c (c (? . 1) q ->pen-color)) q (87389 . 3)) ((c def c (c (? . 1) q v-)) q (88366 . 4)) ((c def c (c (? . 0) q plot-title)) q (92321 . 5)) ((c def c (c (? . 0) q polar-axes-alpha)) q (104918 . 5)) ((c def c (c (? . 4) q shade)) q (120182 . 7)) ((c def c (c (? . 0) q lines3d)) q (50320 . 25)) ((c def c (c (? . 0) q invertible-function-f)) c (? . 6)) ((c def c (c (? . 0) q cbrt-transform)) q (71977 . 2)) ((c def c (c (? . 0) q stacked-histogram-colors)) q (102603 . 5)) ((c def c (c (? . 0) q eu-currency-formats)) q (80752 . 3)) ((c def c (c (? . 0) q invisible-rect3d)) q (70806 . 13)) ((c def c (c (? . 0) q density)) q (12073 . 25)) ((c def c (c (? . 4) q plot-color?)) q (120927 . 3)) ((c def c (c (? . 0) q point-alpha)) q (97459 . 5)) ((c def c (c (? . 1) q ->pen-style)) q (87561 . 3)) ((c def c (c (? . 0) q plot-width)) q (90591 . 5)) ((c def c (c (? . 0) q plot)) q (0 . 29)) ((c def c (c (? . 0) q plot-z-far-axis?)) q (94753 . 5)) ((c def c (c (? . 1) q plot-time-second)) c (? . 2)) ((c def c (c (? . 0) q isosurface-line-widths)) q (108927 . 5)) ((c def c (c (? . 0) q axis-transform/c)) q (72102 . 3)) ((c def c (c (? . 1) q vmag^2)) q (89167 . 3)) ((c def c (c (? . 0) q label-alpha)) q (105470 . 5)) ((c def c (c (? . 0) q default-contour-fill-colors)) q (99393 . 5)) ((c def c (c (? . 0) q interval-line1-width)) q (96291 . 5)) ((c def c (c (? . 0) q plot-y-far-ticks)) q (73306 . 5)) ((c def c (c (? . 0) q ticks-format/c)) q (83161 . 3)) ((c def c (c (? . 0) q uk-currency-formats)) q (80647 . 3)) ((c def c (c (? . 0) q plot-x-tick-label-anchor)) q (93214 . 5)) ((c def c (c (? . 0) q plot-y-far-tick-label-anchor)) q (93970 . 5)) ((c def c (c (? . 0) q rectangle-line-color)) q (101446 . 5)) ((c def c (c (? . 0) q default-contour-colors)) q (99181 . 5)) ((c def c (c (? . 0) q invertible-function?)) c (? . 6)) ((c def c (c (? . 0) q currency-ticks)) q (79277 . 13)) ((c def c (c (? . 0) q contour-interval-line-widths)) q (107334 . 5)) ((c def c (c (? . 0) q time-ticks-layout)) q (77665 . 3)) ((c def c (c (? . 1) q v+)) q (88262 . 4)) ((c def c (c (? . 0) q plot-z-far-label)) q (93083 . 5)) ((c def c (c (? . 0) q function-label)) q (36751 . 30)) ((c def c (c (? . 0) q surface-line-style)) q (106902 . 5)) ((c def c (c (? . 0) q stacked-histogram-line-colors)) q (102788 . 5)) ((c def c (c (? . 1) q bounds->intervals)) q (89690 . 3)) ((c def c (c (? . 0) q plot-y-transform)) q (71399 . 5)) ((c def c (c (? . 1) q seconds->plot-time)) q (90275 . 3)) ((c def c (c (? . 0) q mix)) q (113483 . 3)) ((c def c (c (? . 0) q contour-intervals)) q (24832 . 36)) ((c def c (c (? . 0) q plot-x-ticks)) q (72958 . 5)) ((c def c (c (? . 0) q rectangle-color)) q (101201 . 5)) ((c def c (c (? . 0) q rectangles3d)) q (64377 . 29)) ((c def c (c (? . 0) q vector-field-color)) q (97722 . 5)) ((c def c (c (? . 1) q plot-time-hour)) c (? . 2)) ((c def c (c (? . 0) q inverse-label)) q (38221 . 30)) ((c def c (c (? . 0) q lines-interval)) q (16805 . 33)) ((c def c (c (? . 0) q inverse-interval)) q (14957 . 35)) ((c def c (c (? . 0) q isoline3d)) q (55553 . 29)) ((c def c (c (? . 0) q plot-x-far-ticks)) q (73067 . 5)) ((c def c (c (? . 0) q 12h-descending-time-ticks-formats)) q (78652 . 12)) ((c def c (c (? . 0) q currency-ticks-format)) q (78888 . 8)) ((c def c (c (? . 1) q v/)) q (88629 . 4)) ((c def c (c (? . 0) q point-sym)) q (97045 . 5)) ((c def c (c (? . 4) q vector-field)) q (119190 . 12)) ((c def c (c (? . 0) q vector-field-samples)) q (97571 . 5)) ((c def c (c (? . 0) q time-ticks-format)) q (77801 . 3)) ((c def c (c (? . 0) q y-tick-lines)) q (35224 . 2)) ((c def c (c (? . 0) q plot-x-tick-label-angle)) q (93343 . 5)) ((c def c (c (? . 1) q make-ivl)) c (? . 7)) ((c def c (c (? . 0) q plot-z-ticks)) q (73436 . 5)) ((c def c (c (? . 1) q vnormalize)) q (89287 . 3)) ((c def c (c (? . 0) q rectangle-line-style)) q (101688 . 5)) ((c def c (c (? . 0) q us-currency-formats)) q (80541 . 3)) ((c def c (c (? . 0) q plot-x-label)) q (92440 . 5)) ((c def c (c (? . 1) q labels/c)) q (113338 . 4)) ((c def c (c (? . 1) q rational-ivl?)) q (89631 . 3)) ((c def c (c (? . 0) q points)) q (3694 . 25)) ((c def c (c (? . 0) q error-bar-alpha)) q (99059 . 5)) ((c def c (c (? . 0) q contour-intervals3d)) q (58161 . 49)) ((c def c (c (? . 0) q surface3d)) q (52649 . 31)) ((c def c (c (? . 4) q contour)) q (119710 . 13)) ((c def c (c (? . 1) q ivl-min)) c (? . 7)) ((c def c (c (? . 0) q plot-animating?)) q (94862 . 5)) ((c def c (c (? . 0) q date-ticks-formats)) q (76783 . 5)) ((c def c (c (? . 4) q gradient)) q (121102 . 5)) ((c def c (c (? . 0) q uk-currency-scales)) q (80386 . 3)) ((c def c (c (? . 1) q pen-widths/c)) q (112903 . 4)) ((c def c (c (? . 0) q collapse-transform)) q (71886 . 4)) ((c def c (c (? . 1) q ->brush-color)) q (87474 . 3)) ((c def c (c (? . 0) q id-transform)) q (71685 . 2)) ((c def c (c (? . 0) q contour-interval-line-colors)) q (107151 . 5)) ((c def c (c (? . 0) q no-ticks)) q (81047 . 3)) ((c def c (c (? . 0) q invisible-rect)) q (70589 . 6)) ((c def c (c (? . 0) q invertible-function-g)) c (? . 6)) ((c def c (c (? . 0) q linear-ticks)) q (74991 . 10)) ((c def c (c (? . 0) q plot-legend-box-alpha)) q (92082 . 5)) ((c def c (c (? . 1) q ivl->plot-label)) q (84494 . 4)) ((c def c (c (? . 0) q date-ticks-layout)) q (76182 . 3)) ((c def c (c (? . 1) q plot-brush-style/c)) q (110237 . 6)) ((c def c (c (? . 0) q pre-tick-value)) c (? . 8)) ((c def c (c (? . 0) q invertible-compose)) q (83476 . 4)) ((c def c (c (? . 1) q ivl)) c (? . 7)) ((c def c (c (? . 0) q plot-y-label)) q (92569 . 5)) ((c def c (c (? . 0) q polar-axes-ticks?)) q (105042 . 5)) ((c def c (c (? . 0) q x-axis-labels?)) q (104442 . 5)) ((c def c (c (? . 1) q maybe-function/c)) q (112312 . 5)) ((c def c (c (? . 0) q rectangle-alpha)) q (101825 . 5)) ((c def c (c (? . 0) q isosurface-colors)) q (108365 . 5)) ((c def c (c (? . 0) q pre-tick?)) c (? . 8)) ((c def c (c (? . 0) q plot-x-transform)) q (71256 . 5)) ((c def c (c (? . 0) q error-bar-width)) q (98582 . 5)) ((c def c (c (? . 1) q v=)) q (88717 . 4)) ((c def c (c (? . 0) q y-axis-far?)) q (103933 . 5)) ((c def c (c (? . 0) q plot-deprecation-warnings?)) q (90341 . 5)) ((c def c (c (? . 1) q polar->cartesian)) q (87699 . 4)) ((c def c (c (? . 0) q vector-field-alpha)) q (98302 . 5)) ((c def c (c (? . 1) q ->brush-style)) q (87628 . 3)) ((c def c (c (? . 0) q interval-line2-style)) q (96788 . 5)) ((c def c (c (? . 1) q nonrenderer?)) q (109570 . 3)) ((c def c (c (? . 0) q eu-currency-scales)) q (80464 . 3)) ((c def c (c (? . 1) q mapped-function-fmap)) c (? . 3)) ((c def c (c (? . 0) q label-angle)) q (105378 . 5)) ((c def c (c (? . 1) q ivl?)) c (? . 7)) ((c def c (c (? . 0) q isosurface-alphas)) q (109285 . 5)) ((c def c (c (? . 1) q font-family/c)) q (110536 . 2)) ((c def c (c (? . 0) q error-bar-line-style)) q (98922 . 5)) ((c def c (c (? . 1) q plot-time?)) c (? . 2)) ((c def c (c (? . 1) q color-seq)) q (86638 . 12)) ((c def c (c (? . 0) q plot-background)) q (91244 . 5)) ((c def c (c (? . 0) q rectangle-style)) q (101315 . 5)) ((c def c (c (? . 4) q make-vec)) q (121264 . 5)) ((c def c (c (? . 0) q axis-transform-append)) q (72209 . 5)) ((c def c (c (? . 1) q vcenter)) q (89364 . 3)) ((c def c (c (? . 0) q polar-axes)) q (34779 . 9)) ((c def c (c (? . 0) q polar-interval)) q (20615 . 39)) ((c def c (c (? . 0) q surface-alpha)) q (107035 . 5)) ((c def c (c (? . 0) q axis-transform-bound)) q (72352 . 7)) ((c def c (c (? . 0) q pre-tick-major?)) c (? . 8)) ((c def c (c (? . 0) q id-function)) q (83433 . 2)) ((c def c (c (? . 0) q plot-x-far-label)) q (92821 . 5)) ((c def c (c (? . 0) q plot3d-altitude)) q (105946 . 5)) ((c def c (c (? . 1) q make-mapped-function)) c (? . 3)) ((c def c (c (? . 0) q points3d)) q (47421 . 29)) ((c def c (c (? . 1) q kde)) q (86478 . 6)) ((c def c (c (? . 0) q discrete-histogram)) q (29269 . 36)) ((c def c (c (? . 0) q plot-ps/pdf-interactive?)) q (90991 . 5)) ((c def c (c (? . 0) q rectangles)) q (26626 . 25)) ((c def c (c (? . 0) q make-invertible-function)) c (? . 6)) ((c def c (c (? . 0) q plot-font-size)) q (91622 . 5)) ((c def c (c (? . 0) q plot-foreground-alpha)) q (91358 . 5)) ((c def c (c (? . 0) q lines)) q (9059 . 21)) ((c def c (c (? . 0) q plot/dc)) q (2369 . 29)) ((c def c (c (? . 0) q z-axis-ticks?)) q (104337 . 5)) ((c def c (c (? . 0) q 24h-descending-date-ticks-formats)) q (76949 . 18)) ((c def c (c (? . 0) q ticks-mimic)) q (82544 . 3)) ((c def c (c (? . 0) q stacked-histogram)) q (31243 . 41)) ((c def c (c (? . 0) q point-label)) q (35315 . 27)) ((c def c (c (? . 0) q line-width)) q (95601 . 5)) ((c def c (c (? . 0) q y-axis-ticks?)) q (104232 . 5)) ((c def c (c (? . 0) q z-axis-alpha)) q (103722 . 5)) ((c def c (c (? . 0) q x-tick-lines)) q (35182 . 2)) ((c def c (c (? . 0) q linear-ticks-layout)) q (74561 . 7)) ((c def c (c (? . 0) q struct:invertible-function)) c (? . 6)) ((c def c (c (? . 0) q y-axis-labels?)) q (104551 . 5)) ((c def c (c (? . 0) q isosurface3d)) q (60675 . 33)) ((c def c (c (? . 0) q contour)) q (114265 . 12)) ((c def c (c (? . 1) q plot-brush-styles/c)) q (113042 . 4)) ((c def c (c (? . 0) q contour-styles)) q (100325 . 5)) ((c def c (c (? . 0) q isoline)) q (22612 . 25)) ((c def c (c (? . 0) q contour-interval-styles)) q (100848 . 6)) ((c def c (c (? . 0) q discrete-histogram-skip)) q (102201 . 5)) ((c def c (c (? . 1) q linear-seq*)) q (85519 . 9)) ((c def c (c (? . 0) q plot3d-angle)) q (105851 . 5)) ((c def c (c (? . 0) q inverse)) q (8109 . 23)) ((c def c (c (? . 0) q stacked-histogram-line-widths)) q (103156 . 5)) ((c def c (c (? . 0) q discrete-histogram-invert?)) q (102323 . 5)) ((c def c (c (? . 0) q contour-samples)) q (99627 . 5)) ((c def c (c (? . 0) q contour-interval-alphas)) q (101038 . 5)) ((c def c (c (? . 1) q alphas/c)) q (113197 . 4)) ((c def c (c (? . 0) q apply-axis-transform)) q (72781 . 6)) ((c def c (c (? . 0) q plot-x-far-tick-label-angle)) q (93846 . 5)) ((c def c (c (? . 0) q plot3d-samples)) q (105690 . 5)) ((c def c (c (? . 0) q plot-y-tick-label-angle)) q (93590 . 5)) ((c def c (c (? . 1) q nonlinear-seq)) q (85836 . 13)) ((c def c (c (? . 0) q fraction-ticks-format)) q (81900 . 5)) ((c def c (c (? . 0) q plot-d-ticks)) q (74048 . 5)) ((c def c (c (? . 1) q mapped-function?)) c (? . 3)) ((c def c (c (? . 0) q shade)) q (114740 . 6)) ((c def c (c (? . 0) q plot-foreground)) q (91130 . 5)) ((c def c (c (? . 0) q parametric-label)) q (39677 . 30)) ((c def c (c (? . 0) q default-isosurface-line-colors)) q (107934 . 5)) ((c def c (c (? . 1) q linear-seq)) q (85159 . 11)) ((c def c (c (? . 0) q log-transform)) q (71725 . 2)) ((c def c (c (? . 0) q plot-decorations?)) q (95214 . 5)) ((c def c (c (? . 0) q ticks-default-number)) q (74413 . 5)) ((c def c (c (? . 0) q vector-field-line-style)) q (97968 . 5)) ((c def c (c (? . 1) q real->string/trunc)) q (84714 . 4)) ((c def c (c (? . 0) q isosurface-line-colors)) q (108728 . 5)) ((c def c (c (? . 0) q stacked-histogram3d)) q (67940 . 45)) ((c def c (c (? . 0) q line-samples)) q (95339 . 5)) ((c def c (c (? . 1) q vcross)) q (88812 . 4)) ((c def c (c (? . 0) q parametric-interval)) q (18520 . 39)) ((c def c (c (? . 0) q contour-interval-line-styles)) q (107517 . 6)) ((c def c (c (? . 0) q line-color)) q (95497 . 5)) ((c def c (c (? . 0) q plot-bitmap)) q (1967 . 3)) ((c def c (c (? . 0) q plot-z-transform)) q (71542 . 5)) ((c def c (c (? . 1) q vcross2)) q (88962 . 4)) ((c def c (c (? . 0) q interval-color)) q (95926 . 5)) ((c def c (c (? . 1) q digits-for-range)) q (84011 . 9)) ((c def c (c (? . 0) q surface)) q (115009 . 9)) ((c def c (c (? . 1) q plot-time->seconds)) q (90209 . 3)) ((c def c (c (? . 0) q parametric)) q (9873 . 27)) ((c def c (c (? . 0) q ticks)) c (? . 5)) ((c def c (c (? . 0) q currency-ticks-scales)) q (79959 . 5)) ((c def c (c (? . 0) q make-pre-tick)) c (? . 8)) ((c def c (c (? . 0) q discrete-histogram-gap)) q (102069 . 5)) ((c def c (c (? . 0) q contours3d)) q (56759 . 30)) ((c def c (c (? . 0) q ticks-add)) q (82614 . 5)) ((c def c (c (? . 0) q point-size)) q (97253 . 5)) ((c def c (c (? . 1) q integer->superscript)) q (85085 . 3)) ((c def c (c (? . 0) q x-axis)) q (33268 . 11)) ((c def c (c (? . 0) q plot-y-far-label)) q (92952 . 5)) ((c def c (c (? . 0) q plot-y-tick-label-anchor)) q (93459 . 5)) ((c def c (c (? . 1) q plot-colors/c)) q (112609 . 4)) ((c def c (c (? . 1) q color-seq*)) q (86992 . 10)) ((c def c (c (? . 0) q z-ticks)) q (70475 . 4)) ((c def c (c (? . 0) q linear-ticks-format)) q (74939 . 2)) ((c def c (c (? . 0) q error-bar-line-width)) q (98804 . 5)) ((c def c (c (? . 0) q plot3d-file)) q (44512 . 10)) ((c def c (c (? . 0) q parametric3d)) q (51316 . 31)) ((c def c (c (? . 4) q derivative)) q (120984 . 4)) ((c def c (c (? . 0) q plot3d)) q (42707 . 39)) ((c def c (c (? . 1) q plot-color/c)) q (109974 . 3)) ((c def c (c (? . 1) q plot-time)) c (? . 2)) ((c def c (c (? . 0) q function-interval)) q (13092 . 35)) ((c def c (c (? . 1) q vneg)) q (88470 . 3)) ((c def c (c (? . 0) q struct:pre-tick)) c (? . 8)) ((c def c (c (? . 1) q plot-time-day)) c (? . 2)) ((c def c (c (? . 1) q floor-log/base)) q (88050 . 4)) ((c def c (c (? . 0) q interval-line1-style)) q (96409 . 5)) ((c def c (c (? . 0) q stacked-histogram-alphas)) q (102456 . 5)) ((c def c (c (? . 0) q stretch-transform)) q (71766 . 5)) ((c def c (c (? . 1) q mapped-function-f)) c (? . 3)) ((c def c (c (? . 0) q line)) q (113584 . 17)) ((c def c (c (? . 0) q bit/byte-ticks)) q (81319 . 11)) ((c def c (c (? . 0) q ticks-format)) c (? . 5)) ((c def c (c (? . 0) q plot-tick-size)) q (92216 . 5)) ((c def c (c (? . 1) q datetime->real)) q (89842 . 3)) ((c def c (c (? . 0) q polar-label)) q (41189 . 29)) ((c def c (c (? . 0) q plot3d-diffuse-light?)) q (106185 . 5)) ((c def c (c (? . 1) q ->plot-label)) q (84611 . 4)) ((c def c (c (? . 0) q tick)) c (? . 9)) ((c def c (c (? . 0) q isosurfaces3d)) q (62260 . 42)) ((c def c (c (? . 0) q plot-new-window?)) q (90478 . 5)) ((c def c (c (? . 0) q contour-colors)) q (99995 . 5)) ((c def c (c (? . 0) q plot-y-far-tick-label-angle)) q (94108 . 5)) ((c def c (c (? . 0) q date-ticks-format)) q (76318 . 3)) ((c def c (c (? . 0) q plot-frame)) q (2237 . 3)) ((c def c (c (? . 0) q vector-field-line-width)) q (97842 . 5)) ((c def c (c (? . 0) q struct:ticks)) c (? . 5)) ((c def c (c (? . 1) q clamp-real)) q (89771 . 4)) ((c def c (c (? . 4) q error-bars)) q (119003 . 5)) ((c def c (c (? . 1) q v*)) q (88541 . 4)) ((c def c (c (? . 0) q y-axis)) q (33680 . 11)) ((c def c (c (? . 1) q real->decimal-string*)) q (84805 . 7)) ((c def c (c (? . 0) q error-bar-color)) q (98690 . 5)) ((c def c (c (? . 0) q polar)) q (11004 . 27)) ((c def c (c (? . 0) q no-ticks-layout)) q (80860 . 3)) ((c def c (c (? . 0) q y-ticks)) q (70361 . 4)) ((c def c (c (? . 0) q surface-line-color)) q (106666 . 5)) ((c def c (c (? . 0) q currency-ticks-formats)) q (80114 . 5)) ((c def c (c (? . 0) q surface-style)) q (106539 . 5)) ((c def c (c (? . 1) q plot-pen-style/c)) q (110042 . 5)) ((c def c (c (? . 0) q interval-style)) q (96038 . 5)) ((c def c (c (? . 0) q struct:tick)) c (? . 9)) ((c def c (c (? . 1) q vdot)) q (89073 . 4)) ((c def c (c (? . 4) q points)) q (118085 . 6)) ((c def c (c (? . 0) q interval-line2-color)) q (96546 . 5)) ((c def c (c (? . 0) q x-axis-far?)) q (103836 . 5)) ((c def c (c (? . 0) q bit/byte-ticks-format)) q (81118 . 5)) ((c def c (c (? . 0) q tick?)) c (? . 9)) ((c def c (c (? . 0) q label-point-size)) q (105582 . 5)) ((c def c (c (? . 0) q tick-grid)) q (35266 . 2)) ((c def c (c (? . 0) q us-currency-scales)) q (80310 . 3)) ((c def c (c (? . 0) q vector-field)) q (4790 . 27)) ((c def c (c (? . 0) q time-ticks)) q (77932 . 7)) ((c def c (c (? . 0) q axis-transform-compose)) q (72568 . 4)) ((c def c (c (? . 1) q real->plot-label)) q (84348 . 5)) ((c def c (c (? . 0) q function)) q (7148 . 23)) ((c def c (c (? . 0) q discrete-histogram3d)) q (65789 . 41)) ((c def c (c (? . 0) q stacked-histogram-line-styles)) q (102977 . 5)) ((c def c (c (? . 0) q point-line-width)) q (97349 . 5)) ((c def c (c (? . 1) q renderer2d?)) q (109440 . 3)) ((c def c (c (? . 0) q interval-alpha)) q (96925 . 5)) ((c def c (c (? . 0) q make-tick)) c (? . 9)) ((c def c (c (? . 0) q plot-snip)) q (2101 . 3)) ((c def c (c (? . 0) q line-alpha)) q (95816 . 5)) ((c def c (c (? . 0) q pre-tick)) c (? . 8)) ((c def c (c (? . 0) q plot-x-far-axis?)) q (94333 . 5)) ((c def c (c (? . 0) q 24h-descending-time-ticks-formats)) q (78432 . 12)) ((c def c (c (? . 1) q struct:ivl)) c (? . 7)) ((c def c (c (? . 0) q plot-z-far-ticks)) q (73545 . 5)) ((c def c (c (? . 4) q plot3d)) q (116527 . 39))))
procedure
(plot  renderer-tree                 
      [#:x-min x-min                 
       #:x-max x-max                 
       #:y-min y-min                 
       #:y-max y-max                 
       #:width width                 
       #:height height               
       #:title title                 
       #:x-label x-label             
       #:y-label y-label             
       #:legend-anchor legend-anchor 
       #:out-file out-file           
       #:out-kind out-kind])         
 -> (or/c (is-a?/c image-snip%) void?)
  renderer-tree : (treeof (or/c renderer2d? nonrenderer?))
  x-min : (or/c rational? #f) = #f
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = #f
  y-max : (or/c rational? #f) = #f
  width : exact-positive-integer? = (plot-width)
  height : exact-positive-integer? = (plot-height)
  title : (or/c string? #f) = (plot-title)
  x-label : (or/c string? #f) = (plot-x-label)
  y-label : (or/c string? #f) = (plot-y-label)
  legend-anchor : anchor/c = (plot-legend-anchor)
  out-file : (or/c path-string? output-port? #f) = #f
  out-kind : (one-of/c 'auto 'png 'jpeg 'xmb 'xpm 'bmp 'ps 'pdf 'svg)
           = 'auto
procedure
(plot-file  renderer-tree                            
            output                                   
           [kind]                                    
            #:<plot-keyword> <plot-keyword> ...) -> void?
  renderer-tree : (treeof (or/c renderer2d? nonrenderer?))
  output : (or/c path-string? output-port?)
  kind : (one-of/c 'auto 'png 'jpeg 'xmb 'xpm 'bmp 'ps 'pdf 'svg)
       = 'auto
  <plot-keyword> : <plot-keyword-contract>
procedure
(plot-pict renderer-tree ...) -> pict?
  renderer-tree : (treeof (or/c renderer2d? nonrenderer?))
procedure
(plot-bitmap renderer-tree ...) -> (is-a?/c bitmap%)
  renderer-tree : (treeof (or/c renderer2d? nonrenderer?))
procedure
(plot-snip renderer-tree ...) -> (is-a?/c image-snip%)
  renderer-tree : (treeof (or/c renderer2d? nonrenderer?))
procedure
(plot-frame renderer-tree ...) -> (is-a?/c frame%)
  renderer-tree : (treeof (or/c renderer2d? nonrenderer?))
procedure
(plot/dc  renderer-tree                       
          dc                                  
          x                                   
          y                                   
          width                               
          height                              
         [#:x-min x-min                       
          #:x-max x-max                       
          #:y-min y-min                       
          #:y-max y-max                       
          #:title title                       
          #:x-label x-label                   
          #:y-label y-label                   
          #:legend-anchor legend-anchor]) -> void?
  renderer-tree : (treeof (or/c renderer2d? nonrenderer?))
  dc : (is-a?/c dc<%>)
  x : real?
  y : real?
  width : (>=/c 0)
  height : (>=/c 0)
  x-min : (or/c rational? #f) = #f
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = #f
  y-max : (or/c rational? #f) = #f
  title : (or/c string? #f) = (plot-title)
  x-label : (or/c string? #f) = (plot-x-label)
  y-label : (or/c string? #f) = (plot-y-label)
  legend-anchor : anchor/c = (plot-legend-anchor)
procedure
(points  vs                          
        [#:x-min x-min               
         #:x-max x-max               
         #:y-min y-min               
         #:y-max y-max               
         #:sym sym                   
         #:color color               
         #:fill-color fill-color     
         #:size size                 
         #:line-width line-width     
         #:alpha alpha               
         #:label label])         -> renderer2d?
  vs : (sequence/c (sequence/c real?))
  x-min : (or/c rational? #f) = #f
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = #f
  y-max : (or/c rational? #f) = #f
  sym : point-sym/c = (point-sym)
  color : plot-color/c = (point-color)
  fill-color : (or/c plot-color/c 'auto) = 'auto
  size : (>=/c 0) = (point-size)
  line-width : (>=/c 0) = (point-line-width)
  alpha : (real-in 0 1) = (point-alpha)
  label : (or/c string? #f) = #f
procedure
(vector-field  f                           
              [x-min                       
               x-max                       
               y-min                       
               y-max                       
               #:samples samples           
               #:scale scale               
               #:color color               
               #:line-width line-width     
               #:line-style line-style     
               #:alpha alpha               
               #:label label])         -> renderer2d?
  f : (or/c (real? real? . -> . (sequence/c real?))
            ((vector/c real? real?) . -> . (sequence/c real?)))
  x-min : (or/c rational? #f) = #f
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = #f
  y-max : (or/c rational? #f) = #f
  samples : exact-positive-integer? = (vector-field-samples)
  scale : (or/c real? (one-of/c 'auto 'normalized))
        = (vector-field-scale)
  color : plot-color/c = (vector-field-color)
  line-width : (>=/c 0) = (vector-field-line-width)
  line-style : plot-pen-style/c = (vector-field-line-style)
  alpha : (real-in 0 1) = (vector-field-alpha)
  label : (or/c string? #f) = #f
procedure
(error-bars  bars                        
            [#:x-min x-min               
             #:x-max x-max               
             #:y-min y-min               
             #:y-max y-max               
             #:color color               
             #:line-width line-width     
             #:line-style line-style     
             #:width width               
             #:alpha alpha])         -> renderer2d?
  bars : (sequence/c (sequence/c real?))
  x-min : (or/c rational? #f) = #f
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = #f
  y-max : (or/c rational? #f) = #f
  color : plot-color/c = (error-bar-color)
  line-width : (>=/c 0) = (error-bar-line-width)
  line-style : plot-pen-style/c = (error-bar-line-style)
  width : (>=/c 0) = (error-bar-width)
  alpha : (real-in 0 1) = (error-bar-alpha)
procedure
(function  f                     
          [x-min                 
           x-max                 
           #:y-min y-min         
           #:y-max y-max         
           #:samples samples     
           #:color color         
           #:width width         
           #:style style         
           #:alpha alpha         
           #:label label])   -> renderer2d?
  f : (real? . -> . real?)
  x-min : (or/c rational? #f) = #f
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = #f
  y-max : (or/c rational? #f) = #f
  samples : (and/c exact-integer? (>=/c 2)) = (line-samples)
  color : plot-color/c = (line-color)
  width : (>=/c 0) = (line-width)
  style : plot-pen-style/c = (line-style)
  alpha : (real-in 0 1) = (line-alpha)
  label : (or/c string? #f) = #f
procedure
(inverse  f                     
         [y-min                 
          y-max                 
          #:x-min x-min         
          #:x-max x-max         
          #:samples samples     
          #:color color         
          #:width width         
          #:style style         
          #:alpha alpha         
          #:label label])   -> renderer2d?
  f : (real? . -> . real?)
  y-min : (or/c rational? #f) = #f
  y-max : (or/c rational? #f) = #f
  x-min : (or/c rational? #f) = #f
  x-max : (or/c rational? #f) = #f
  samples : (and/c exact-integer? (>=/c 2)) = (line-samples)
  color : plot-color/c = (line-color)
  width : (>=/c 0) = (line-width)
  style : plot-pen-style/c = (line-style)
  alpha : (real-in 0 1) = (line-alpha)
  label : (or/c string? #f) = #f
procedure
(lines  vs                  
       [#:x-min x-min       
        #:x-max x-max       
        #:y-min y-min       
        #:y-max y-max       
        #:color color       
        #:width width       
        #:style style       
        #:alpha alpha       
        #:label label]) -> renderer2d?
  vs : (sequence/c (sequence/c real?))
  x-min : (or/c rational? #f) = #f
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = #f
  y-max : (or/c rational? #f) = #f
  color : plot-color/c = (line-color)
  width : (>=/c 0) = (line-width)
  style : plot-pen-style/c = (line-style)
  alpha : (real-in 0 1) = (line-alpha)
  label : (or/c string? #f) = #f
procedure
(parametric  f                     
             t-min                 
             t-max                 
            [#:x-min x-min         
             #:x-max x-max         
             #:y-min y-min         
             #:y-max y-max         
             #:samples samples     
             #:color color         
             #:width width         
             #:style style         
             #:alpha alpha         
             #:label label])   -> renderer2d?
  f : (real? . -> . (sequence/c real?))
  t-min : rational?
  t-max : rational?
  x-min : (or/c rational? #f) = #f
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = #f
  y-max : (or/c rational? #f) = #f
  samples : (and/c exact-integer? (>=/c 2)) = (line-samples)
  color : plot-color/c = (line-color)
  width : (>=/c 0) = (line-width)
  style : plot-pen-style/c = (line-style)
  alpha : (real-in 0 1) = (line-alpha)
  label : (or/c string? #f) = #f
procedure
(polar  f                     
       [θ-min                 
        θ-max                 
        #:x-min x-min         
        #:x-max x-max         
        #:y-min y-min         
        #:y-max y-max         
        #:samples samples     
        #:color color         
        #:width width         
        #:style style         
        #:alpha alpha         
        #:label label])   -> renderer2d?
  f : (real? . -> . real?)
  θ-min : real? = 0
  θ-max : real? = (* 2 pi)
  x-min : (or/c rational? #f) = #f
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = #f
  y-max : (or/c rational? #f) = #f
  samples : (and/c exact-integer? (>=/c 2)) = (line-samples)
  color : plot-color/c = (line-color)
  width : (>=/c 0) = (line-width)
  style : plot-pen-style/c = (line-style)
  alpha : (real-in 0 1) = (line-alpha)
  label : (or/c string? #f) = #f
procedure
(density  xs                    
         [bw-adjust             
          #:x-min x-min         
          #:x-max x-max         
          #:y-min y-min         
          #:y-max y-max         
          #:samples samples     
          #:color color         
          #:width width         
          #:style style         
          #:alpha alpha         
          #:label label])   -> renderer2d?
  xs : (sequence/c real?)
  bw-adjust : real? = 1
  x-min : (or/c rational? #f) = #f
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = #f
  y-max : (or/c rational? #f) = #f
  samples : (and/c exact-integer? (>=/c 2)) = (line-samples)
  color : plot-color/c = (line-color)
  width : (>=/c 0) = (line-width)
  style : plot-pen-style/c = (line-style)
  alpha : (real-in 0 1) = (line-alpha)
  label : (or/c string? #f) = #f
procedure
(function-interval  f1                            
                    f2                            
                   [x-min                         
                    x-max                         
                    #:y-min y-min                 
                    #:y-max y-max                 
                    #:samples samples             
                    #:color color                 
                    #:style style                 
                    #:line1-color line1-color     
                    #:line1-width line1-width     
                    #:line1-style line1-style     
                    #:line2-color line2-color     
                    #:line2-width line2-width     
                    #:line2-style line2-style     
                    #:alpha alpha                 
                    #:label label])           -> renderer2d?
  f1 : (real? . -> . real?)
  f2 : (real? . -> . real?)
  x-min : (or/c rational? #f) = #f
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = #f
  y-max : (or/c rational? #f) = #f
  samples : (and/c exact-integer? (>=/c 2)) = (line-samples)
  color : plot-color/c = (interval-color)
  style : plot-brush-style/c = (interval-style)
  line1-color : plot-color/c = (interval-line1-color)
  line1-width : (>=/c 0) = (interval-line1-width)
  line1-style : plot-pen-style/c = (interval-line1-style)
  line2-color : plot-color/c = (interval-line2-color)
  line2-width : (>=/c 0) = (interval-line2-width)
  line2-style : plot-pen-style/c = (interval-line2-style)
  alpha : (real-in 0 1) = (interval-alpha)
  label : (or/c string? #f) = #f
procedure
(inverse-interval  f1                            
                   f2                            
                  [y-min                         
                   y-max                         
                   #:x-min x-min                 
                   #:x-max x-max                 
                   #:samples samples             
                   #:color color                 
                   #:style style                 
                   #:line1-color line1-color     
                   #:line1-width line1-width     
                   #:line1-style line1-style     
                   #:line2-color line2-color     
                   #:line2-width line2-width     
                   #:line2-style line2-style     
                   #:alpha alpha                 
                   #:label label])           -> renderer2d?
  f1 : (real? . -> . real?)
  f2 : (real? . -> . real?)
  y-min : (or/c rational? #f) = #f
  y-max : (or/c rational? #f) = #f
  x-min : (or/c rational? #f) = #f
  x-max : (or/c rational? #f) = #f
  samples : (and/c exact-integer? (>=/c 2)) = (line-samples)
  color : plot-color/c = (interval-color)
  style : plot-brush-style/c = (interval-style)
  line1-color : plot-color/c = (interval-line1-color)
  line1-width : (>=/c 0) = (interval-line1-width)
  line1-style : plot-pen-style/c = (interval-line1-style)
  line2-color : plot-color/c = (interval-line2-color)
  line2-width : (>=/c 0) = (interval-line2-width)
  line2-style : plot-pen-style/c = (interval-line2-style)
  alpha : (real-in 0 1) = (interval-alpha)
  label : (or/c string? #f) = #f
procedure
(lines-interval  v1s                           
                 v2s                           
                [#:x-min x-min                 
                 #:x-max x-max                 
                 #:y-min y-min                 
                 #:y-max y-max                 
                 #:color color                 
                 #:style style                 
                 #:line1-color line1-color     
                 #:line1-width line1-width     
                 #:line1-style line1-style     
                 #:line2-color line2-color     
                 #:line2-width line2-width     
                 #:line2-style line2-style     
                 #:alpha alpha                 
                 #:label label])           -> renderer2d?
  v1s : (sequence/c (sequence/c real?))
  v2s : (sequence/c (sequence/c real?))
  x-min : (or/c rational? #f) = #f
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = #f
  y-max : (or/c rational? #f) = #f
  color : plot-color/c = (interval-color)
  style : plot-brush-style/c = (interval-style)
  line1-color : plot-color/c = (interval-line1-color)
  line1-width : (>=/c 0) = (interval-line1-width)
  line1-style : plot-pen-style/c = (interval-line1-style)
  line2-color : plot-color/c = (interval-line2-color)
  line2-width : (>=/c 0) = (interval-line2-width)
  line2-style : plot-pen-style/c = (interval-line2-style)
  alpha : (real-in 0 1) = (interval-alpha)
  label : (or/c string? #f) = #f
procedure
(parametric-interval  f1                            
                      f2                            
                      t-min                         
                      t-max                         
                     [#:x-min x-min                 
                      #:x-max x-max                 
                      #:y-min y-min                 
                      #:y-max y-max                 
                      #:samples samples             
                      #:color color                 
                      #:style style                 
                      #:line1-color line1-color     
                      #:line1-width line1-width     
                      #:line1-style line1-style     
                      #:line2-color line2-color     
                      #:line2-width line2-width     
                      #:line2-style line2-style     
                      #:alpha alpha                 
                      #:label label])           -> renderer2d?
  f1 : (real? . -> . (sequence/c real?))
  f2 : (real? . -> . (sequence/c real?))
  t-min : rational?
  t-max : rational?
  x-min : (or/c rational? #f) = #f
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = #f
  y-max : (or/c rational? #f) = #f
  samples : (and/c exact-integer? (>=/c 2)) = (line-samples)
  color : plot-color/c = (interval-color)
  style : plot-brush-style/c = (interval-style)
  line1-color : plot-color/c = (interval-line1-color)
  line1-width : (>=/c 0) = (interval-line1-width)
  line1-style : plot-pen-style/c = (interval-line1-style)
  line2-color : plot-color/c = (interval-line2-color)
  line2-width : (>=/c 0) = (interval-line2-width)
  line2-style : plot-pen-style/c = (interval-line2-style)
  alpha : (real-in 0 1) = (interval-alpha)
  label : (or/c string? #f) = #f
procedure
(polar-interval  f1                            
                 f2                            
                [θ-min                         
                 θ-max                         
                 #:x-min x-min                 
                 #:x-max x-max                 
                 #:y-min y-min                 
                 #:y-max y-max                 
                 #:samples samples             
                 #:color color                 
                 #:style style                 
                 #:line1-color line1-color     
                 #:line1-width line1-width     
                 #:line1-style line1-style     
                 #:line2-color line2-color     
                 #:line2-width line2-width     
                 #:line2-style line2-style     
                 #:alpha alpha                 
                 #:label label])           -> renderer2d?
  f1 : (real? . -> . real?)
  f2 : (real? . -> . real?)
  θ-min : rational? = 0
  θ-max : rational? = (* 2 pi)
  x-min : (or/c rational? #f) = #f
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = #f
  y-max : (or/c rational? #f) = #f
  samples : (and/c exact-integer? (>=/c 2)) = (line-samples)
  color : plot-color/c = (interval-color)
  style : plot-brush-style/c = (interval-style)
  line1-color : plot-color/c = (interval-line1-color)
  line1-width : (>=/c 0) = (interval-line1-width)
  line1-style : plot-pen-style/c = (interval-line1-style)
  line2-color : plot-color/c = (interval-line2-color)
  line2-width : (>=/c 0) = (interval-line2-width)
  line2-style : plot-pen-style/c = (interval-line2-style)
  alpha : (real-in 0 1) = (interval-alpha)
  label : (or/c string? #f) = #f
procedure
(isoline  f                     
          z                     
         [x-min                 
          x-max                 
          y-min                 
          y-max                 
          #:samples samples     
          #:color color         
          #:width width         
          #:style style         
          #:alpha alpha         
          #:label label])   -> renderer2d?
  f : (real? real? . -> . real?)
  z : real?
  x-min : (or/c rational? #f) = #f
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = #f
  y-max : (or/c rational? #f) = #f
  samples : (and/c exact-integer? (>=/c 2)) = (contour-samples)
  color : plot-color/c = (line-color)
  width : (>=/c 0) = (line-width)
  style : plot-pen-style/c = (line-style)
  alpha : (real-in 0 1) = (line-alpha)
  label : (or/c string? #f) = #f
procedure
(contours  f                     
          [x-min                 
           x-max                 
           y-min                 
           y-max                 
           #:samples samples     
           #:levels levels       
           #:colors colors       
           #:widths widths       
           #:styles styles       
           #:alphas alphas       
           #:label label])   -> renderer2d?
  f : (real? real? . -> . real?)
  x-min : (or/c rational? #f) = #f
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = #f
  y-max : (or/c rational? #f) = #f
  samples : (and/c exact-integer? (>=/c 2)) = (contour-samples)
  levels : (or/c 'auto exact-positive-integer? (listof real?))
         = (contour-levels)
  colors : (plot-colors/c (listof real?)) = (contour-colors)
  widths : (pen-widths/c (listof real?)) = (contour-widths)
  styles : (plot-pen-styles/c (listof real?)) = (contour-styles)
  alphas : (alphas/c (listof real?)) = (contour-alphas)
  label : (or/c string? #f) = #f
procedure
(contour-intervals  f                               
                   [x-min                           
                    x-max                           
                    y-min                           
                    y-max                           
                    #:samples samples               
                    #:levels levels                 
                    #:colors colors                 
                    #:styles styles                 
                    #:contour-colors contour-colors 
                    #:contour-widths contour-widths 
                    #:contour-styles contour-styles 
                    #:alphas alphas                 
                    #:label label])                 
 -> renderer2d?
  f : (real? real? . -> . real?)
  x-min : (or/c rational? #f) = #f
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = #f
  y-max : (or/c rational? #f) = #f
  samples : (and/c exact-integer? (>=/c 2)) = (contour-samples)
  levels : (or/c 'auto exact-positive-integer? (listof real?))
         = (contour-levels)
  colors : (plot-colors/c (listof ivl?))
         = (contour-interval-colors)
  styles : (plot-brush-styles/c (listof ivl?))
         = (contour-interval-styles)
  contour-colors : (plot-colors/c (listof real?))
                 = (contour-colors)
  contour-widths : (pen-widths/c (listof real?))
                 = (contour-widths)
  contour-styles : (plot-pen-styles/c (listof real?))
                 = (contour-styles)
  alphas : (alphas/c (listof ivl?)) = (contour-interval-alphas)
  label : (or/c string? #f) = #f
procedure
(rectangles  rects                       
            [#:x-min x-min               
             #:x-max x-max               
             #:y-min y-min               
             #:y-max y-max               
             #:color color               
             #:style style               
             #:line-color line-color     
             #:line-width line-width     
             #:line-style line-style     
             #:alpha alpha               
             #:label label])         -> renderer2d?
  rects : (sequence/c (sequence/c ivl?))
  x-min : (or/c rational? #f) = #f
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = #f
  y-max : (or/c rational? #f) = #f
  color : plot-color/c = (rectangle-color)
  style : plot-brush-style/c = (rectangle-style)
  line-color : plot-color/c = (rectangle-line-color)
  line-width : (>=/c 0) = (rectangle-line-width)
  line-style : plot-pen-style/c = (rectangle-line-style)
  alpha : (real-in 0 1) = (rectangle-alpha)
  label : (or/c string? #f) = #f
procedure
(area-histogram  f                           
                 bin-bounds                  
                [#:x-min x-min               
                 #:x-max x-max               
                 #:y-min y-min               
                 #:y-max y-max               
                 #:samples samples           
                 #:color color               
                 #:style style               
                 #:line-color line-color     
                 #:line-width line-width     
                 #:line-style line-style     
                 #:alpha alpha               
                 #:label label])         -> renderer2d?
  f : (real? . -> . real?)
  bin-bounds : (sequence/c real?)
  x-min : (or/c rational? #f) = #f
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = 0
  y-max : (or/c rational? #f) = #f
  samples : (and/c exact-integer? (>=/c 2)) = (line-samples)
  color : plot-color/c = (rectangle-color)
  style : plot-brush-style/c = (rectangle-style)
  line-color : plot-color/c = (rectangle-line-color)
  line-width : (>=/c 0) = (rectangle-line-width)
  line-style : plot-pen-style/c = (rectangle-line-style)
  alpha : (real-in 0 1) = (rectangle-alpha)
  label : (or/c string? #f) = #f
procedure
(discrete-histogram  cat-vals                      
                    [#:x-min x-min                 
                     #:x-max x-max                 
                     #:y-min y-min                 
                     #:y-max y-max                 
                     #:gap gap                     
                     #:skip skip                   
                     #:invert? invert?             
                     #:color color                 
                     #:style style                 
                     #:line-color line-color       
                     #:line-width line-width       
                     #:line-style line-style       
                     #:alpha alpha                 
                     #:label label                 
                     #:add-ticks? add-ticks?       
                     #:far-ticks? far-ticks?]) -> renderer2d?
  cat-vals : (sequence/c (or/c (vector/c any/c (or/c real? ivl? #f))
                               (list/c any/c (or/c real? ivl? #f))))
  x-min : (or/c rational? #f) = 0
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = 0
  y-max : (or/c rational? #f) = #f
  gap : (real-in 0 1) = (discrete-histogram-gap)
  skip : (>=/c 0) = (discrete-histogram-skip)
  invert? : boolean? = (discrete-histogram-invert?)
  color : plot-color/c = (rectangle-color)
  style : plot-brush-style/c = (rectangle-style)
  line-color : plot-color/c = (rectangle-line-color)
  line-width : (>=/c 0) = (rectangle-line-width)
  line-style : plot-pen-style/c = (rectangle-line-style)
  alpha : (real-in 0 1) = (rectangle-alpha)
  label : (or/c string? #f) = #f
  add-ticks? : boolean? = #t
  far-ticks? : boolean? = #f
procedure
(stacked-histogram  cat-vals                  
                   [#:x-min x-min             
                    #:x-max x-max             
                    #:y-min y-min             
                    #:y-max y-max             
                    #:gap gap                 
                    #:skip skip               
                    #:invert? invert?         
                    #:colors colors           
                    #:styles styles           
                    #:line-colors line-colors 
                    #:line-widths line-widths 
                    #:line-styles line-styles 
                    #:alphas alphas           
                    #:labels labels           
                    #:add-ticks? add-ticks?   
                    #:far-ticks? far-ticks?]) 
 -> (listof renderer2d?)
  cat-vals : (sequence/c (or/c (vector/c any/c (sequence/c real?))
                               (list/c any/c (sequence/c real?))))
  x-min : (or/c rational? #f) = 0
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = 0
  y-max : (or/c rational? #f) = #f
  gap : (real-in 0 1) = (discrete-histogram-gap)
  skip : (>=/c 0) = (discrete-histogram-skip)
  invert? : boolean? = (discrete-histogram-invert?)
  colors : (plot-colors/c nat/c) = (stacked-histogram-colors)
  styles : (plot-brush-styles/c nat/c)
         = (stacked-histogram-styles)
  line-colors : (plot-colors/c nat/c)
              = (stacked-histogram-line-colors)
  line-widths : (pen-widths/c nat/c)
              = (stacked-histogram-line-widths)
  line-styles : (plot-pen-styles/c nat/c)
              = (stacked-histogram-line-styles)
  alphas : (alphas/c nat/c) = (stacked-histogram-alphas)
  labels : (labels/c nat/c) = '(#f)
  add-ticks? : boolean? = #t
  far-ticks? : boolean? = #f
procedure
(x-axis [y                     
         #:ticks? ticks?       
         #:labels? labels?     
         #:far? far?           
         #:alpha alpha])   -> renderer2d?
  y : real? = 0
  ticks? : boolean? = (x-axis-ticks?)
  labels? : boolean? = (x-axis-labels?)
  far? : boolean? = (x-axis-far?)
  alpha : (real-in 0 1) = (x-axis-alpha)
procedure
(y-axis [x                     
         #:ticks? ticks?       
         #:labels? labels?     
         #:far? far?           
         #:alpha alpha])   -> renderer2d?
  x : real? = 0
  ticks? : boolean? = (y-axis-ticks?)
  labels? : boolean? = (y-axis-labels?)
  far? : boolean? = (y-axis-far?)
  alpha : (real-in 0 1) = (y-axis-alpha)
procedure
(axes [x                         
       y                         
       #:x-ticks? x-ticks?       
       #:y-ticks? y-ticks?       
       #:x-labels? x-labels?     
       #:y-labels? y-labels?     
       #:x-alpha x-alpha         
       #:y-alpha y-alpha])   -> (listof renderer2d?)
  x : real? = 0
  y : real? = 0
  x-ticks? : boolean? = (x-axis-ticks?)
  y-ticks? : boolean? = (y-axis-ticks?)
  x-labels? : boolean? = (x-axis-labels?)
  y-labels? : boolean? = (y-axis-labels?)
  x-alpha : (real-in 0 1) = (x-axis-alpha)
  y-alpha : (real-in 0 1) = (y-axis-alpha)
procedure
(polar-axes [#:number num          
             #:ticks? ticks?       
             #:labels? labels?     
             #:alpha alpha])   -> renderer2d?
  num : exact-nonnegative-integer? = (polar-axes-number)
  ticks? : boolean? = (polar-axes-ticks?)
  labels? : boolean? = (polar-axes-labels?)
  alpha : (real-in 0 1) = (polar-axes-alpha)
procedure
(x-tick-lines) -> renderer2d?
procedure
(y-tick-lines) -> renderer2d?
procedure
(tick-grid) -> (listof renderer2d?)
procedure
(point-label  v                                       
             [label                                   
              #:color color                           
              #:size size                             
              #:family family                         
              #:anchor anchor                         
              #:angle angle                           
              #:point-color point-color               
              #:point-fill-color point-fill-color     
              #:point-size point-size                 
              #:point-line-width point-line-width     
              #:point-sym point-sym                   
              #:alpha alpha])                     -> renderer2d?
  v : (sequence/c real?)
  label : (or/c string? #f) = #f
  color : plot-color/c = (plot-foreground)
  size : (>=/c 0) = (plot-font-size)
  family : font-family/c = (plot-font-family)
  anchor : anchor/c = (label-anchor)
  angle : real? = (label-angle)
  point-color : plot-color/c = (point-color)
  point-fill-color : (or/c plot-color/c 'auto) = 'auto
  point-size : (>=/c 0) = (label-point-size)
  point-line-width : (>=/c 0) = (point-line-width)
  point-sym : point-sym/c = 'fullcircle
  alpha : (real-in 0 1) = (label-alpha)
procedure
(function-label  f                                   
                 x                                   
                [label                               
                 #:color color                       
                 #:size size                         
                 #:family family                     
                 #:anchor anchor                     
                 #:angle angle                       
                 #:point-color point-color           
                 #:point-fill-color point-fill-color 
                 #:point-size point-size             
                 #:point-line-width point-line-width 
                 #:point-sym point-sym               
                 #:alpha alpha])                     
 -> renderer2d?
  f : (real? . -> . real?)
  x : real?
  label : (or/c string? #f) = #f
  color : plot-color/c = (plot-foreground)
  size : (>=/c 0) = (plot-font-size)
  family : font-family/c = (plot-font-family)
  anchor : anchor/c = (label-anchor)
  angle : real? = (label-angle)
  point-color : plot-color/c = (point-color)
  point-fill-color : (or/c plot-color/c 'auto) = 'auto
  point-size : (>=/c 0) = (label-point-size)
  point-line-width : (>=/c 0) = (point-line-width)
  point-sym : point-sym/c = 'fullcircle
  alpha : (real-in 0 1) = (label-alpha)
procedure
(inverse-label  f                                   
                y                                   
               [label                               
                #:color color                       
                #:size size                         
                #:family family                     
                #:anchor anchor                     
                #:angle angle                       
                #:point-color point-color           
                #:point-fill-color point-fill-color 
                #:point-size point-size             
                #:point-line-width point-line-width 
                #:point-sym point-sym               
                #:alpha alpha])                     
 -> renderer2d?
  f : (real? . -> . real?)
  y : real?
  label : (or/c string? #f) = #f
  color : plot-color/c = (plot-foreground)
  size : (>=/c 0) = (plot-font-size)
  family : font-family/c = (plot-font-family)
  anchor : anchor/c = (label-anchor)
  angle : real? = (label-angle)
  point-color : plot-color/c = (point-color)
  point-fill-color : (or/c plot-color/c 'auto) = 'auto
  point-size : (>=/c 0) = (label-point-size)
  point-line-width : (>=/c 0) = (point-line-width)
  point-sym : point-sym/c = 'fullcircle
  alpha : (real-in 0 1) = (label-alpha)
procedure
(parametric-label  f                                   
                   t                                   
                  [label                               
                   #:color color                       
                   #:size size                         
                   #:family family                     
                   #:anchor anchor                     
                   #:angle angle                       
                   #:point-color point-color           
                   #:point-fill-color point-fill-color 
                   #:point-size point-size             
                   #:point-line-width point-line-width 
                   #:point-sym point-sym               
                   #:alpha alpha])                     
 -> renderer2d?
  f : (real? . -> . (sequence/c real?))
  t : real?
  label : (or/c string? #f) = #f
  color : plot-color/c = (plot-foreground)
  size : (>=/c 0) = (plot-font-size)
  family : font-family/c = (plot-font-family)
  anchor : anchor/c = (label-anchor)
  angle : real? = (label-angle)
  point-color : plot-color/c = (point-color)
  point-fill-color : (or/c plot-color/c 'auto) = 'auto
  point-size : (>=/c 0) = (label-point-size)
  point-line-width : (>=/c 0) = (point-line-width)
  point-sym : point-sym/c = 'fullcircle
  alpha : (real-in 0 1) = (label-alpha)
procedure
(polar-label  f                                       
              θ                                       
             [label                                   
              #:color color                           
              #:size size                             
              #:family family                         
              #:anchor anchor                         
              #:angle angle                           
              #:point-color point-color               
              #:point-fill-color point-fill-color     
              #:point-size point-size                 
              #:point-line-width point-line-width     
              #:point-sym point-sym                   
              #:alpha alpha])                     -> renderer2d?
  f : (real? . -> . real?)
  θ : real?
  label : (or/c string? #f) = #f
  color : plot-color/c = (plot-foreground)
  size : (>=/c 0) = (plot-font-size)
  family : font-family/c = (plot-font-family)
  anchor : anchor/c = (label-anchor)
  angle : real? = (label-angle)
  point-color : plot-color/c = (point-color)
  point-fill-color : (or/c plot-color/c 'auto) = 'auto
  point-size : (>=/c 0) = (label-point-size)
  point-line-width : (>=/c 0) = (point-line-width)
  point-sym : point-sym/c = 'fullcircle
  alpha : (real-in 0 1) = (label-alpha)
procedure
(plot3d  renderer-tree                 
        [#:x-min x-min                 
         #:x-max x-max                 
         #:y-min y-min                 
         #:y-max y-max                 
         #:z-min z-min                 
         #:z-max z-max                 
         #:width width                 
         #:height height               
         #:angle angle                 
         #:altitude altitude           
         #:title title                 
         #:x-label x-label             
         #:y-label y-label             
         #:z-label z-label             
         #:legend-anchor legend-anchor 
         #:out-file out-file           
         #:out-kind out-kind])         
 -> (or/c (is-a?/c image-snip%) void?)
  renderer-tree : (treeof (or/c renderer3d? nonrenderer?))
  x-min : (or/c rational? #f) = #f
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = #f
  y-max : (or/c rational? #f) = #f
  z-min : (or/c rational? #f) = #f
  z-max : (or/c rational? #f) = #f
  width : exact-positive-integer? = (plot-width)
  height : exact-positive-integer? = (plot-height)
  angle : real? = (plot3d-angle)
  altitude : real? = (plot3d-altitude)
  title : (or/c string? #f) = (plot-title)
  x-label : (or/c string? #f) = (plot-x-label)
  y-label : (or/c string? #f) = (plot-y-label)
  z-label : (or/c string? #f) = (plot-z-label)
  legend-anchor : anchor/c = (plot-legend-anchor)
  out-file : (or/c path-string? output-port? #f) = #f
  out-kind : (one-of/c 'auto 'png 'jpeg 'xmb 'xpm 'bmp 'ps 'pdf 'svg)
           = 'auto
procedure
(plot3d-file  renderer-tree                            
              output                                   
             [kind]                                    
              #:<plot-keyword> <plot-keyword> ...) -> void?
  renderer-tree : (treeof (or/c renderer3d? nonrenderer?))
  output : (or/c path-string? output-port?)
  kind : (one-of/c 'auto 'png 'jpeg 'xmb 'xpm 'bmp 'ps 'pdf 'svg)
       = 'auto
  <plot-keyword> : <plot-keyword-contract>
procedure
(plot3d-pict renderer-tree ...) -> pict?
  renderer-tree : (treeof (or/c renderer3d? nonrenderer?))
procedure
(plot3d-bitmap renderer-tree ...) -> (is-a?/c bitmap%)
  renderer-tree : (treeof (or/c renderer3d? nonrenderer?))
procedure
(plot3d-snip renderer-tree ...) -> (is-a?/c image-snip%)
  renderer-tree : (treeof (or/c renderer3d? nonrenderer?))
procedure
(plot3d-frame renderer-tree ...) -> (is-a?/c frame%)
  renderer-tree : (treeof (or/c renderer3d? nonrenderer?))
procedure
(plot3d/dc  renderer-tree                       
            dc                                  
            x                                   
            y                                   
            width                               
            height                              
           [#:x-min x-min                       
            #:x-max x-max                       
            #:y-min y-min                       
            #:y-max y-max                       
            #:z-min z-min                       
            #:z-max z-max                       
            #:angle angle                       
            #:altitude altitude                 
            #:title title                       
            #:x-label x-label                   
            #:y-label y-label                   
            #:z-label z-label                   
            #:legend-anchor legend-anchor]) -> void?
  renderer-tree : (treeof (or/c renderer3d? nonrenderer?))
  dc : (is-a?/c dc<%>)
  x : real?
  y : real?
  width : (>=/c 0)
  height : (>=/c 0)
  x-min : (or/c rational? #f) = #f
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = #f
  y-max : (or/c rational? #f) = #f
  z-min : (or/c rational? #f) = #f
  z-max : (or/c rational? #f) = #f
  angle : real? = (plot3d-angle)
  altitude : real? = (plot3d-altitude)
  title : (or/c string? #f) = (plot-title)
  x-label : (or/c string? #f) = (plot-x-label)
  y-label : (or/c string? #f) = (plot-y-label)
  z-label : (or/c string? #f) = (plot-z-label)
  legend-anchor : anchor/c = (plot-legend-anchor)
procedure
(points3d  vs                          
          [#:x-min x-min               
           #:x-max x-max               
           #:y-min y-min               
           #:y-max y-max               
           #:z-min z-min               
           #:z-max z-max               
           #:sym sym                   
           #:color color               
           #:fill-color fill-color     
           #:size size                 
           #:line-width line-width     
           #:alpha alpha               
           #:label label])         -> renderer3d?
  vs : (sequence/c (sequence/c real?))
  x-min : (or/c rational? #f) = #f
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = #f
  y-max : (or/c rational? #f) = #f
  z-min : (or/c rational? #f) = #f
  z-max : (or/c rational? #f) = #f
  sym : point-sym/c = (point-sym)
  color : plot-color/c = (point-color)
  fill-color : (or/c plot-color/c 'auto) = 'auto
  size : (>=/c 0) = (point-size)
  line-width : (>=/c 0) = (point-line-width)
  alpha : (real-in 0 1) = (point-alpha)
  label : (or/c string? #f) = #f
procedure
(vector-field3d  f                           
                [x-min                       
                 x-max                       
                 y-min                       
                 y-max                       
                 z-min                       
                 z-max                       
                 #:samples samples           
                 #:scale scale               
                 #:color color               
                 #:line-width line-width     
                 #:line-style line-style     
                 #:alpha alpha               
                 #:label label])         -> renderer3d?
  f : (or/c (real? real? real? . -> . (sequence/c real?))
            ((vector/c real? real? real?) . -> . (sequence/c real?)))
  x-min : (or/c rational? #f) = #f
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = #f
  y-max : (or/c rational? #f) = #f
  z-min : (or/c rational? #f) = #f
  z-max : (or/c rational? #f) = #f
  samples : exact-positive-integer? = ( vector-field3d-samples)
  scale : (or/c real? (one-of/c 'auto 'normalized))
        = (vector-field-scale)
  color : plot-color/c = (vector-field-color)
  line-width : (>=/c 0) = (vector-field-line-width)
  line-style : plot-pen-style/c = (vector-field-line-style)
  alpha : (real-in 0 1) = (vector-field-alpha)
  label : (or/c string? #f) = #f
procedure
(lines3d  vs                  
         [#:x-min x-min       
          #:x-max x-max       
          #:y-min y-min       
          #:y-max y-max       
          #:z-min z-min       
          #:z-max z-max       
          #:color color       
          #:width width       
          #:style style       
          #:alpha alpha       
          #:label label]) -> renderer3d?
  vs : (sequence/c (sequence/c real?))
  x-min : (or/c rational? #f) = #f
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = #f
  y-max : (or/c rational? #f) = #f
  z-min : (or/c rational? #f) = #f
  z-max : (or/c rational? #f) = #f
  color : plot-color/c = (line-color)
  width : (>=/c 0) = (line-width)
  style : plot-pen-style/c = (line-style)
  alpha : (real-in 0 1) = (line-alpha)
  label : (or/c string? #f) = #f
procedure
(parametric3d  f                     
               t-min                 
               t-max                 
              [#:x-min x-min         
               #:x-max x-max         
               #:y-min y-min         
               #:y-max y-max         
               #:z-min z-min         
               #:z-max z-max         
               #:samples samples     
               #:color color         
               #:width width         
               #:style style         
               #:alpha alpha         
               #:label label])   -> renderer3d?
  f : (real? . -> . (sequence/c real?))
  t-min : rational?
  t-max : rational?
  x-min : (or/c rational? #f) = #f
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = #f
  y-max : (or/c rational? #f) = #f
  z-min : (or/c rational? #f) = #f
  z-max : (or/c rational? #f) = #f
  samples : (and/c exact-integer? (>=/c 2)) = (line-samples)
  color : plot-color/c = (line-color)
  width : (>=/c 0) = (line-width)
  style : plot-pen-style/c = (line-style)
  alpha : (real-in 0 1) = (line-alpha)
  label : (or/c string? #f) = #f
procedure
(surface3d  f                           
           [x-min                       
            x-max                       
            y-min                       
            y-max                       
            #:z-min z-min               
            #:z-max z-max               
            #:samples samples           
            #:color color               
            #:style style               
            #:line-color line-color     
            #:line-width line-width     
            #:line-style line-style     
            #:alpha alpha               
            #:label label])         -> renderer3d?
  f : (real? real? . -> . real?)
  x-min : (or/c rational? #f) = #f
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = #f
  y-max : (or/c rational? #f) = #f
  z-min : (or/c rational? #f) = #f
  z-max : (or/c rational? #f) = #f
  samples : (and/c exact-integer? (>=/c 2)) = (plot3d-samples)
  color : plot-color/c = (surface-color)
  style : plot-brush-style/c = (surface-style)
  line-color : plot-color/c = (surface-line-color)
  line-width : (>=/c 0) = (surface-line-width)
  line-style : plot-pen-style/c = (surface-line-style)
  alpha : (real-in 0 1) = (surface-alpha)
  label : (or/c string? #f) = #f
procedure
(polar3d  f                           
         [#:x-min x-min               
          #:x-max x-max               
          #:y-min y-min               
          #:y-max y-max               
          #:z-min z-min               
          #:z-max z-max               
          #:samples samples           
          #:color color               
          #:style style               
          #:line-color line-color     
          #:line-width line-width     
          #:line-style line-style     
          #:alpha alpha               
          #:label label])         -> renderer3d?
  f : (real? real? . -> . real?)
  x-min : (or/c rational? #f) = #f
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = #f
  y-max : (or/c rational? #f) = #f
  z-min : (or/c rational? #f) = #f
  z-max : (or/c rational? #f) = #f
  samples : (and/c exact-integer? (>=/c 2)) = (plot3d-samples)
  color : plot-color/c = (surface-color)
  style : plot-brush-style/c = (surface-style)
  line-color : plot-color/c = (surface-line-color)
  line-width : (>=/c 0) = (surface-line-width)
  line-style : plot-pen-style/c = (surface-line-style)
  alpha : (real-in 0 1) = (surface-alpha)
  label : (or/c string? #f) = #f
procedure
(isoline3d  f                     
            z                     
           [x-min                 
            x-max                 
            y-min                 
            y-max                 
            #:z-min z-min         
            #:z-max z-max         
            #:samples samples     
            #:color color         
            #:width width         
            #:style style         
            #:alpha alpha         
            #:label label])   -> renderer3d?
  f : (real? real? . -> . real?)
  z : real?
  x-min : (or/c rational? #f) = #f
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = #f
  y-max : (or/c rational? #f) = #f
  z-min : (or/c rational? #f) = #f
  z-max : (or/c rational? #f) = #f
  samples : (and/c exact-integer? (>=/c 2)) = (plot3d-samples)
  color : plot-color/c = (line-color)
  width : (>=/c 0) = (line-width)
  style : plot-pen-style/c = (line-style)
  alpha : (real-in 0 1) = (line-alpha)
  label : (or/c string? #f) = #f
procedure
(contours3d  f                     
            [x-min                 
             x-max                 
             y-min                 
             y-max                 
             #:z-min z-min         
             #:z-max z-max         
             #:samples samples     
             #:levels levels       
             #:colors colors       
             #:widths widths       
             #:styles styles       
             #:alphas alphas       
             #:label label])   -> renderer3d?
  f : (real? real? . -> . real?)
  x-min : (or/c rational? #f) = #f
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = #f
  y-max : (or/c rational? #f) = #f
  z-min : (or/c rational? #f) = #f
  z-max : (or/c rational? #f) = #f
  samples : (and/c exact-integer? (>=/c 2)) = (plot3d-samples)
  levels : (or/c 'auto exact-positive-integer? (listof real?))
         = (contour-levels)
  colors : (plot-colors/c (listof real?)) = (contour-colors)
  widths : (pen-widths/c (listof real?)) = (contour-widths)
  styles : (plot-pen-styles/c (listof real?)) = (contour-styles)
  alphas : (alphas/c (listof real?)) = (contour-alphas)
  label : (or/c string? #f) = #f
procedure
(contour-intervals3d  f                               
                     [x-min                           
                      x-max                           
                      y-min                           
                      y-max                           
                      #:z-min z-min                   
                      #:z-max z-max                   
                      #:samples samples               
                      #:levels levels                 
                      #:colors colors                 
                      #:styles styles                 
                      #:line-colors line-colors       
                      #:line-widths line-widths       
                      #:line-styles line-styles       
                      #:contour-colors contour-colors 
                      #:contour-widths contour-widths 
                      #:contour-styles contour-styles 
                      #:alphas alphas                 
                      #:label label])                 
 -> renderer3d?
  f : (real? real? . -> . real?)
  x-min : (or/c rational? #f) = #f
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = #f
  y-max : (or/c rational? #f) = #f
  z-min : (or/c rational? #f) = #f
  z-max : (or/c rational? #f) = #f
  samples : (and/c exact-integer? (>=/c 2)) = (plot3d-samples)
  levels : (or/c 'auto exact-positive-integer? (listof real?))
         = (contour-levels)
  colors : (plot-colors/c (listof ivl?))
         = (contour-interval-colors)
  styles : (plot-brush-styles/c (listof ivl?))
         = (contour-interval-styles)
  line-colors : (plot-colors/c (listof ivl?))
              = (contour-interval-line-colors)
  line-widths : (pen-widths/c (listof ivl?))
              = (contour-interval-line-widths)
  line-styles : (plot-pen-styles/c (listof ivl?))
              = (contour-interval-line-styles)
  contour-colors : (plot-colors/c (listof real?))
                 = (contour-colors)
  contour-widths : (pen-widths/c (listof real?))
                 = (contour-widths)
  contour-styles : (plot-pen-styles/c (listof real?))
                 = (contour-styles)
  alphas : (alphas/c (listof ivl?)) = (contour-interval-alphas)
  label : (or/c string? #f) = #f
procedure
(isosurface3d  f                           
               d                           
              [x-min                       
               x-max                       
               y-min                       
               y-max                       
               z-min                       
               z-max                       
               #:samples samples           
               #:color color               
               #:style style               
               #:line-color line-color     
               #:line-width line-width     
               #:line-style line-style     
               #:alpha alpha               
               #:label label])         -> renderer3d?
  f : (real? real? real? . -> . real?)
  d : rational?
  x-min : (or/c rational? #f) = #f
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = #f
  y-max : (or/c rational? #f) = #f
  z-min : (or/c rational? #f) = #f
  z-max : (or/c rational? #f) = #f
  samples : (and/c exact-integer? (>=/c 2)) = (plot3d-samples)
  color : plot-color/c = (surface-color)
  style : plot-brush-style/c = (surface-style)
  line-color : plot-color/c = (surface-line-color)
  line-width : (>=/c 0) = (surface-line-width)
  line-style : plot-pen-style/c = (surface-line-style)
  alpha : (real-in 0 1) = (surface-alpha)
  label : (or/c string? #f) = #f
procedure
(isosurfaces3d  f                             
               [x-min                         
                x-max                         
                y-min                         
                y-max                         
                z-min                         
                z-max                         
                #:d-min d-min                 
                #:d-max d-max                 
                #:samples samples             
                #:levels levels               
                #:colors colors               
                #:styles styles               
                #:line-colors line-colors     
                #:line-widths line-widths     
                #:line-styles line-styles     
                #:alphas alphas               
                #:label label])           -> renderer3d?
  f : (real? real? real? . -> . real?)
  x-min : (or/c rational? #f) = #f
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = #f
  y-max : (or/c rational? #f) = #f
  z-min : (or/c rational? #f) = #f
  z-max : (or/c rational? #f) = #f
  d-min : (or/c rational? #f) = #f
  d-max : (or/c rational? #f) = #f
  samples : (and/c exact-integer? (>=/c 2)) = (plot3d-samples)
  levels : (or/c 'auto exact-positive-integer? (listof real?))
         = (isosurface-levels)
  colors : (plot-colors/c (listof real?)) = (isosurface-colors)
  styles : (plot-brush-styles/c (listof real?))
         = (isosurface-styles)
  line-colors : (plot-colors/c (listof real?))
              = (isosurface-line-colors)
  line-widths : (pen-widths/c (listof real?))
              = (isosurface-line-widths)
  line-styles : (plot-pen-styles/c (listof real?))
              = (isosurface-line-styles)
  alphas : (alphas/c (listof real?)) = (isosurface-alphas)
  label : (or/c string? #f) = #f
procedure
(rectangles3d  rects                       
              [#:x-min x-min               
               #:x-max x-max               
               #:y-min y-min               
               #:y-max y-max               
               #:z-min z-min               
               #:z-max z-max               
               #:color color               
               #:style style               
               #:line-color line-color     
               #:line-width line-width     
               #:line-style line-style     
               #:alpha alpha               
               #:label label])         -> renderer3d?
  rects : (sequence/c (sequence/c ivl?))
  x-min : (or/c rational? #f) = #f
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = #f
  y-max : (or/c rational? #f) = #f
  z-min : (or/c rational? #f) = #f
  z-max : (or/c rational? #f) = #f
  color : plot-color/c = (rectangle-color)
  style : plot-brush-style/c = (rectangle-style)
  line-color : plot-color/c = (rectangle-line-color)
  line-width : (>=/c 0) = (rectangle3d-line-width)
  line-style : plot-pen-style/c = (rectangle-line-style)
  alpha : (real-in 0 1) = (rectangle-alpha)
  label : (or/c string? #f) = #f
procedure
(discrete-histogram3d  cat-vals                      
                      [#:x-min x-min                 
                       #:x-max x-max                 
                       #:y-min y-min                 
                       #:y-max y-max                 
                       #:z-min z-min                 
                       #:z-max z-max                 
                       #:gap gap                     
                       #:color color                 
                       #:style style                 
                       #:line-color line-color       
                       #:line-width line-width       
                       #:line-style line-style       
                       #:alpha alpha                 
                       #:label label                 
                       #:add-x-ticks? add-x-ticks?   
                       #:add-y-ticks? add-y-ticks?   
                       #:x-far-ticks? x-far-ticks?   
                       #:y-far-ticks? y-far-ticks?]) 
 -> renderer3d?
  cat-vals : (sequence/c (or/c (vector/c any/c any/c (or/c real? ivl? #f))
                               (list/c any/c any/c (or/c real? ivl? #f))))
  x-min : (or/c rational? #f) = 0
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = 0
  y-max : (or/c rational? #f) = #f
  z-min : (or/c rational? #f) = 0
  z-max : (or/c rational? #f) = #f
  gap : (real-in 0 1) = (discrete-histogram-gap)
  color : plot-color/c = (rectangle-color)
  style : plot-brush-style/c = (rectangle-style)
  line-color : plot-color/c = (rectangle-line-color)
  line-width : (>=/c 0) = (rectangle3d-line-width)
  line-style : plot-pen-style/c = (rectangle-line-style)
  alpha : (real-in 0 1) = (rectangle-alpha)
  label : (or/c string? #f) = #f
  add-x-ticks? : boolean? = #t
  add-y-ticks? : boolean? = #t
  x-far-ticks? : boolean? = #f
  y-far-ticks? : boolean? = #f
procedure
(stacked-histogram3d  cat-vals                      
                     [#:x-min x-min                 
                      #:x-max x-max                 
                      #:y-min y-min                 
                      #:y-max y-max                 
                      #:z-min z-min                 
                      #:z-max z-max                 
                      #:gap gap                     
                      #:colors colors               
                      #:styles styles               
                      #:line-colors line-colors     
                      #:line-widths line-widths     
                      #:line-styles line-styles     
                      #:alphas alphas               
                      #:labels labels               
                      #:add-x-ticks? add-x-ticks?   
                      #:add-y-ticks? add-y-ticks?   
                      #:x-far-ticks? x-far-ticks?   
                      #:y-far-ticks? y-far-ticks?]) 
 -> (listof renderer3d?)
  cat-vals : (sequence/c (or/c (vector/c any/c any/c (sequence/c real?))
                               (list/c any/c any/c (sequence/c real?))))
  x-min : (or/c rational? #f) = 0
  x-max : (or/c rational? #f) = #f
  y-min : (or/c rational? #f) = 0
  y-max : (or/c rational? #f) = #f
  z-min : (or/c rational? #f) = 0
  z-max : (or/c rational? #f) = #f
  gap : (real-in 0 1) = (discrete-histogram-gap)
  colors : (plot-colors/c nat/c) = (stacked-histogram-colors)
  styles : (plot-brush-styles/c nat/c)
         = (stacked-histogram-styles)
  line-colors : (plot-colors/c nat/c)
              = (stacked-histogram-line-colors)
  line-widths : (pen-widths/c nat/c)
              = (stacked-histogram-line-widths)
  line-styles : (plot-pen-styles/c nat/c)
              = (stacked-histogram-line-styles)
  alphas : (alphas/c nat/c) = (stacked-histogram-alphas)
  labels : (labels/c nat/c) = '(#f)
  add-x-ticks? : boolean? = #t
  add-y-ticks? : boolean? = #t
  x-far-ticks? : boolean? = #f
  y-far-ticks? : boolean? = #f
procedure
(x-ticks ts [#:far? far?]) -> nonrenderer?
  ts : (listof tick?)
  far? : boolean? = #f
procedure
(y-ticks ts [#:far? far?]) -> nonrenderer?
  ts : (listof tick?)
  far? : boolean? = #f
procedure
(z-ticks ts [#:far? far?]) -> nonrenderer?
  ts : (listof tick?)
  far? : boolean? = #f
procedure
(invisible-rect x-min x-max y-min y-max) -> nonrenderer?
  x-min : (or/c rational? #f)
  x-max : (or/c rational? #f)
  y-min : (or/c rational? #f)
  y-max : (or/c rational? #f)
procedure
(invisible-rect3d x-min      
                  x-max      
                  y-min      
                  y-max      
                  z-min      
                  z-max) -> nonrenderer?
  x-min : (or/c rational? #f)
  x-max : (or/c rational? #f)
  y-min : (or/c rational? #f)
  y-max : (or/c rational? #f)
  z-min : (or/c rational? #f)
  z-max : (or/c rational? #f)
parameter
(plot-x-transform) -> axis-transform/c
(plot-x-transform transform) -> void?
  transform : axis-transform/c
=  id-transform
parameter
(plot-y-transform) -> axis-transform/c
(plot-y-transform transform) -> void?
  transform : axis-transform/c
=  id-transform
parameter
(plot-z-transform) -> axis-transform/c
(plot-z-transform transform) -> void?
  transform : axis-transform/c
=  id-transform
value
id-transform : axis-transform/c
value
log-transform : axis-transform/c
procedure
(stretch-transform a b scale) -> axis-transform/c
  a : real?
  b : real?
  scale : (>/c 0)
procedure
(collapse-transform a b) -> axis-transform/c
  a : real?
  b : real?
value
cbrt-transform : axis-transform/c
procedure
(hand-drawn-transform freq) -> axis-transform/c
  freq : (>/c 0)
value
axis-transform/c : contract?
=  (real? real? invertible-function? . -> . invertible-function?)
procedure
(axis-transform-append t1 t2 mid) -> axis-transform/c
  t1 : axis-transform/c
  t2 : axis-transform/c
  mid : real?
procedure
(axis-transform-bound t a b) -> axis-transform/c
  t : axis-transform/c
  a : real?
  b : real?
=  (axis-transform-append
    (axis-transform-append id-transform t a) id-transform b)
procedure
(axis-transform-compose t1 t2) -> axis-transform/c
  t1 : axis-transform/c
  t2 : axis-transform/c
procedure
(make-axis-transform fun) -> axis-transform/c
  fun : invertible-function?
procedure
(apply-axis-transform t x-min x-max) -> invertible-function?
  t : axis-transform/c
  x-min : real?
  x-max : real?
=  (t x-min x-max id-function)
parameter
(plot-x-ticks) -> ticks?
(plot-x-ticks ticks) -> void?
  ticks : ticks?
=  (linear-ticks)
parameter
(plot-x-far-ticks) -> ticks?
(plot-x-far-ticks ticks) -> void?
  ticks : ticks?
=  (ticks-mimic plot-x-ticks)
parameter
(plot-y-ticks) -> ticks?
(plot-y-ticks ticks) -> void?
  ticks : ticks?
=  (linear-ticks)
parameter
(plot-y-far-ticks) -> ticks?
(plot-y-far-ticks ticks) -> void?
  ticks : ticks?
=  (ticks-mimic plot-y-ticks)
parameter
(plot-z-ticks) -> ticks?
(plot-z-ticks ticks) -> void?
  ticks : ticks?
=  (linear-ticks)
parameter
(plot-z-far-ticks) -> ticks?
(plot-z-far-ticks ticks) -> void?
  ticks : ticks?
=  (ticks-mimic plot-z-ticks)
procedure
(contour-ticks z-ticks         
               z-min           
               z-max           
               levels          
               intervals?) -> (listof tick?)
  z-ticks : ticks?
  z-min : real?
  z-max : real?
  levels : (or/c 'auto exact-positive-integer? (listof real?))
  intervals? : boolean?
parameter
(plot-d-ticks) -> ticks?
(plot-d-ticks ticks) -> void?
  ticks : ticks?
=  (linear-ticks)
parameter
(plot-r-ticks) -> ticks?
(plot-r-ticks ticks) -> void?
  ticks : ticks?
=  (linear-ticks)
struct
(struct ticks (layout format)
        #:extra-constructor-name make-ticks)
  layout : ticks-layout/c
  format : ticks-format/c
parameter
(ticks-default-number) -> exact-positive-integer?
(ticks-default-number number) -> void?
  number : exact-positive-integer?
=  4
procedure
(linear-ticks-layout [#:number number           
                      #:base base               
                      #:divisors divisors]) -> ticks-layout/c
  number : exact-positive-integer? = (ticks-default-number)
  base : (and/c exact-integer? (>=/c 2)) = 10
  divisors : (listof exact-positive-integer?) = '(1 2 4 5)
procedure
(linear-ticks-format) -> ticks-format/c
procedure
(linear-ticks [#:number number           
               #:base base               
               #:divisors divisors]) -> ticks?
  number : exact-positive-integer? = (ticks-default-number)
  base : (and/c exact-integer? (>=/c 2)) = 10
  divisors : (listof exact-positive-integer?) = '(1 2 4 5)
=  (ticks (linear-ticks-layout #:number number #:base base
                               #:divisors divisors)
          (linear-ticks-format))
procedure
(log-ticks-layout [#:number number     
                   #:base base])   -> ticks-layout/c
  number : exact-positive-integer? = (ticks-default-number)
  base : (and/c exact-integer? (>=/c 2)) = 10
procedure
(log-ticks-format [#:base base]) -> ticks-format/c
  base : (and/c exact-integer? (>=/c 2)) = 10
procedure
(log-ticks [#:number number #:base base]) -> ticks?
  number : exact-positive-integer? = (ticks-default-number)
  base : (and/c exact-integer? (>=/c 2)) = 10
=  (ticks (log-ticks-layout #:number number #:base base)
          (log-ticks-format #:base base))
procedure
(date-ticks-layout [#:number number]) -> ticks-layout/c
  number : exact-positive-integer? = (ticks-default-number)
procedure
(date-ticks-format [#:formats formats]) -> ticks-format/c
  formats : (listof string?) = (date-ticks-formats)
procedure
(date-ticks [#:number number         
             #:formats formats]) -> ticks?
  number : exact-positive-integer? = (ticks-default-number)
  formats : (listof string?) = (date-ticks-formats)
=  (ticks (date-ticks-layout #:number number)
          (date-ticks-format #:formats formats))
parameter
(date-ticks-formats) -> (listof string?)
(date-ticks-formats formats) -> void?
  formats : (listof string?)
=  24h-descending-date-ticks-formats
value
24h-descending-date-ticks-formats : (listof string?)
=  '("~Y-~m-~d ~H:~M:~f"
     "~Y-~m-~d ~H:~M"
     "~Y-~m-~d ~Hh"
     "~Y-~m-~d"
     "~Y-~m"
     "~Y"
     "~m-~d ~H:~M:~f"
     "~m-~d ~H:~M"
     "~m-~d ~Hh"
     "~m-~d"
     "~H:~M:~f"
     "~H:~M"
     "~Hh"
     "~M:~fs"
     "~Mm"
     "~fs")
value
12h-descending-date-ticks-formats : (listof string?)
=  '("~Y-~m-~d ~I:~M:~f ~p"
     "~Y-~m-~d ~I:~M ~p"
     "~Y-~m-~d ~I ~p"
     "~Y-~m-~d"
     "~Y-~m"
     "~Y"
     "~m-~d ~I:~M:~f ~p"
     "~m-~d ~I:~M ~p"
     "~m-~d ~I ~p"
     "~m-~d"
     "~I:~M:~f ~p"
     "~I:~M ~p"
     "~I ~p"
     "~M:~fs"
     "~Mm"
     "~fs")
procedure
(time-ticks-layout [#:number number]) -> ticks-layout/c
  number : exact-positive-integer? = (ticks-default-number)
procedure
(time-ticks-format [#:formats formats]) -> ticks-format/c
  formats : (listof string?) = (time-ticks-formats)
procedure
(time-ticks [#:number number         
             #:formats formats]) -> ticks?
  number : exact-positive-integer? = (ticks-default-number)
  formats : (listof string?) = (time-ticks-formats)
=  (ticks (time-ticks-layout #:number number)
          (time-ticks-format #:formats formats))
parameter
(time-ticks-formats) -> (listof string?)
(time-ticks-formats formats) -> void?
  formats : (listof string?)
=  24h-descending-time-ticks-formats
value
24h-descending-time-ticks-formats : (listof string?)
=  '("~dd ~H:~M:~f"
     "~dd ~H:~M"
     "~dd ~Hh"
     "~dd"
     "~H:~M:~f"
     "~H:~M"
     "~Hh"
     "~M:~fs"
     "~Mm"
     "~fs")
value
12h-descending-time-ticks-formats : (listof string?)
=  '("~dd ~I:~M:~f ~p"
     "~dd ~I:~M ~p"
     "~dd ~I ~p"
     "~dd"
     "~I:~M:~f ~p"
     "~I:~M ~p"
     "~I ~p"
     "~M:~fs"
     "~Mm"
     "~fs")
procedure
(currency-ticks-format [#:kind kind             
                        #:scales scales         
                        #:formats formats]) -> ticks-format/c
  kind : (or/c string? symbol?) = 'USD
  scales : (listof string?) = (currency-ticks-scales)
  formats : (list/c string? string? string?)
          = (currency-ticks-formats)
procedure
(currency-ticks [#:number number         
                 #:kind kind             
                 #:scales scales         
                 #:formats formats]) -> ticks?
  number : exact-positive-integer? = (ticks-default-number)
  kind : (or/c string? symbol?) = 'USD
  scales : (listof string?) = (currency-ticks-scales)
  formats : (list/c string? string? string?)
          = (currency-ticks-formats)
=  (ticks (linear-ticks-layout #:number number)
          (currency-ticks-format #:kind kind #:scales scales
                                 #:formats formats))
parameter
(currency-ticks-scales) -> (listof string?)
(currency-ticks-scales scales) -> void?
  scales : (listof string?)
=  us-currency-scales
parameter
(currency-ticks-formats) -> (list/c string? string? string?)
(currency-ticks-formats formats) -> void?
  formats : (list/c string? string? string?)
=  us-currency-formats
value
us-currency-scales : (listof string?)
=  '("" "K" "M" "B" "T")
value
uk-currency-scales : (listof string?)
=  '("" "k" "m" "bn" "tr")
value
eu-currency-scales : (listof string?)
=  '("" "K" "M" "Md" "B")
value
us-currency-formats : (list/c string? string? string?)
=  '("~$~w.~f~s" "(~$~w.~f~s)" "~$0")
value
uk-currency-formats : (list/c string? string? string?)
=  '("~$~w.~f~s" "-~$~w.~f~s" "~$0")
value
eu-currency-formats : (list/c string? string? string?)
=  '("~w,~f ~s~$" "-~w,~f ~s~$" "0 ~$")
value
no-ticks-layout : ticks-layout/c
=  (λ (x-min x-max) empty)
value
no-ticks-format : ticks-format/c
=  (λ (x-min x-max pre-ticks)
     (map (λ (_) "") pre-ticks))
value
no-ticks : ticks?
=  (ticks no-ticks-layout no-ticks-format)
procedure
(bit/byte-ticks-format [#:size size       
                        #:kind kind]) -> ticks-format/c
  size : (or/c 'byte 'bit) = 'byte
  kind : (or/c 'CS 'SI) = 'CS
procedure
(bit/byte-ticks [#:number number     
                 #:size size         
                 #:kind kind])   -> ticks?
  number : exact-positive-integer? = (ticks-default-number)
  size : (or/c 'byte 'bit) = 'byte
  kind : (or/c 'CS 'SI) = 'CS
=  (define si? (eq? kind 'SI))
   (ticks (linear-ticks-layout #:number number #:base (if si? 10 2)
                               #:divisors (if si? '(1 2 4 5) '(1 2)))
          (bit/byte-ticks-format #:size size #:kind kind))
procedure
(fraction-ticks-format [#:base base               
                        #:divisors divisors]) -> ticks-format/c
  base : (and/c exact-integer? (>=/c 2)) = 10
  divisors : (listof exact-positive-integer?) = '(1 2 3 4 5)
procedure
(fraction-ticks [#:base base               
                 #:divisors divisors]) -> ticks?
  base : (and/c exact-integer? (>=/c 2)) = 10
  divisors : (listof exact-positive-integer?) = '(1 2 3 4 5)
=  (ticks (linear-ticks #:base base #:divisors divisors)
          (fraction-ticks-format #:base base #:divisors divisors))
procedure
(ticks-mimic thunk) -> ticks?
  thunk : (-> ticks?)
procedure
(ticks-add t xs [major?]) -> ticks?
  t : ticks?
  xs : (listof real?)
  major? : boolean? = #t
procedure
(ticks-scale t fun) -> ticks?
  t : ticks?
  fun : invertible-function?
struct
(struct pre-tick (value major?)
        #:extra-constructor-name make-pre-tick)
  value : real?
  major? : boolean?
struct
(struct tick pre-tick (label)
        #:extra-constructor-name make-tick)
  label : string?
value
ticks-layout/c : contract?
=  (real? real? . -> . (listof pre-tick?))
value
ticks-format/c : contract?
=  (real? real? (listof pre-tick?) . -> . (listof string?))
struct
(struct invertible-function (f g)
        #:extra-constructor-name make-invertible-function)
  f : (real? . -> . real?)
  g : (real? . -> . real?)
value
id-function : invertible-function?
procedure
(invertible-compose f1 f2) -> invertible-function?
  f1 : invertible-function?
  f2 : invertible-function?
procedure
(invertible-inverse h) -> invertible-function?
  h : invertible-function?
=  (match-define (invertible-function f g) h)
   (invertible-function g f)
procedure
(linear-scale m [b]) -> invertible-function?
  m : rational?
  b : rational? = 0
=  (invertible-function (λ (x) (+ (* m x) b))
                        (λ (y) (/ (- y b) m)))
procedure
(digits-for-range  x-min              
                   x-max              
                  [base               
                   extra-digits]) -> exact-integer?
  x-min : real?
  x-max : real?
  base : (and/c exact-integer? (>=/c 2)) = 10
  extra-digits : exact-integer? = 3
procedure
(real->plot-label x digits [scientific?]) -> any
  x : real?
  digits : exact-integer?
  scientific? : boolean? = #t
procedure
(ivl->plot-label i [extra-digits]) -> string?
  i : ivl?
  extra-digits : exact-integer? = 3
procedure
(->plot-label a [digits]) -> string?
  a : any/c
  digits : exact-integer? = 7
procedure
(real->string/trunc x e) -> string?
  x : real?
  e : exact-integer?
procedure
(real->decimal-string*  x                
                        min-digits       
                       [max-digits]) -> string?
  x : real?
  min-digits : exact-nonnegative-integer?
  max-digits : exact-nonnegative-integer? = min-digits
procedure
(integer->superscript x) -> string?
  x : exact-integer?
procedure
(linear-seq  start               
             end                 
             num                 
            [#:start? start?     
             #:end? end?])   -> (listof real?)
  start : real?
  end : real?
  num : exact-nonnegative-integer?
  start? : boolean? = #t
  end? : boolean? = #t
procedure
(linear-seq*  points              
              num                 
             [#:start? start?     
              #:end? end?])   -> (listof real?)
  points : (listof real?)
  num : exact-nonnegative-integer?
  start? : boolean? = #t
  end? : boolean? = #t
procedure
(nonlinear-seq  start               
                end                 
                num                 
                transform           
               [#:start? start?     
                #:end? end?])   -> (listof real?)
  start : real?
  end : real?
  num : exact-nonnegative-integer?
  transform : axis-transform/c
  start? : boolean? = #t
  end? : boolean? = #t
struct
(struct mapped-function (f fmap)
        #:extra-constructor-name make-mapped-function)
  f : (any/c . -> . any/c)
  fmap : ((listof any/c) . -> . (listof any/c))
procedure
(kde xs h) -> mapped-function?
              (or/c rational? #f)
              (or/c rational? #f)
  xs : (listof real?)
  h : real?
procedure
(color-seq  c1              
            c2              
            num             
           [#:start? start? 
            #:end? end?])   
 -> (listof (list/c real? real? real?))
  c1 : color/c
  c2 : color/c
  num : exact-nonnegative-integer?
  start? : boolean? = #t
  end? : boolean? = #t
procedure
(color-seq*  colors          
             num             
            [#:start? start? 
             #:end? end?])   
 -> (listof (list/c real? real? real?))
  colors : (listof color/c)
  num : exact-nonnegative-integer?
  start? : boolean? = #t
  end? : boolean? = #t
procedure
(->color c) -> (list/c real? real? real?)
  c : color/c
procedure
(->pen-color c) -> (list/c real? real? real?)
  c : plot-color/c
procedure
(->brush-color c) -> (list/c real? real? real?)
  c : plot-color/c
procedure
(->pen-style s) -> symbol?
  s : plot-pen-style/c
procedure
(->brush-style s) -> symbol?
  s : plot-brush-style/c
procedure
(polar->cartesian θ r) -> (vector/c real? real?)
  θ : real?
  r : real?
procedure
(3d-polar->3d-cartesian θ ρ r) -> (vector/c real? real? real?)
  θ : real?
  ρ : real?
  r : real?
procedure
(ceiling-log/base b x) -> exact-integer?
  b : (and/c exact-integer? (>=/c 2))
  x : (>/c 0)
procedure
(floor-log/base b x) -> exact-integer?
  b : (and/c exact-integer? (>=/c 2))
  x : (>/c 0)
procedure
(maybe-inexact->exact x) -> (or/c rational? #f)
  x : (or/c rational? #f)
procedure
(v+ v1 v2) -> (vectorof real?)
  v1 : (vectorof real?)
  v2 : (vectorof real?)
procedure
(v- v1 v2) -> (vectorof real?)
  v1 : (vectorof real?)
  v2 : (vectorof real?)
procedure
(vneg v) -> (vectorof real?)
  v : (vectorof real?)
procedure
(v* v c) -> (vectorof real?)
  v : (vectorof real?)
  c : real?
procedure
(v/ v c) -> (vectorof real?)
  v : (vectorof real?)
  c : real?
procedure
(v= v1 v2) -> boolean?
  v1 : (vectorof real?)
  v2 : (vectorof real?)
procedure
(vcross v1 v2) -> (vector/c real? real? real?)
  v1 : (vector/c real? real? real?)
  v2 : (vector/c real? real? real?)
procedure
(vcross2 v1 v2) -> real?
  v1 : (vector/c real? real?)
  v2 : (vector/c real? real?)
procedure
(vdot v1 v2) -> real?
  v1 : (vectorof real?)
  v2 : (vectorof real?)
procedure
(vmag^2 v) -> real?
  v : (vectorof real?)
procedure
(vmag v) -> real?
  v : (vectorof real?)
procedure
(vnormalize v) -> (vectorof real?)
  v : (vectorof real?)
procedure
(vcenter vs) -> (vectorof real?)
  vs : (listof (vectorof real?))
procedure
(vrational? v) -> boolean?
  v : (vectorof real?)
struct
(struct ivl (min max)
        #:extra-constructor-name make-ivl)
  min : real?
  max : real?
procedure
(rational-ivl? i) -> boolean?
  i : any/c
procedure
(bounds->intervals xs) -> (listof ivl?)
  xs : (listof real?)
procedure
(clamp-real x i) -> real?
  x : real?
  i : ivl?
procedure
(datetime->real x) -> real?
  x : (or/c plot-time? date? date*? sql-date? sql-time? sql-timestamp?)
struct
(struct plot-time (second minute hour day)
        #:extra-constructor-name make-plot-time)
  second : (and/c (>=/c 0) (</c 60))
  minute : (integer-in 0 59)
  hour : (integer-in 0 23)
  day : exact-integer?
procedure
(plot-time->seconds t) -> real?
  t : plot-time?
procedure
(seconds->plot-time s) -> plot-time?
  s : real?
parameter
(plot-deprecation-warnings?) -> boolean?
(plot-deprecation-warnings? warnings?) -> void?
  warnings? : boolean?
=  #f
parameter
(plot-new-window?) -> boolean?
(plot-new-window? window?) -> void?
  window? : boolean?
=  #f
parameter
(plot-width) -> exact-positive-integer?
(plot-width width) -> void?
  width : exact-positive-integer?
=  400
parameter
(plot-height) -> exact-positive-integer?
(plot-height height) -> void?
  height : exact-positive-integer?
=  400
parameter
(plot-jpeg-quality) -> (integer-in 0 100)
(plot-jpeg-quality quality) -> void?
  quality : (integer-in 0 100)
=  100
parameter
(plot-ps/pdf-interactive?) -> boolean?
(plot-ps/pdf-interactive? interactive?) -> void?
  interactive? : boolean?
=  #f
parameter
(plot-foreground) -> plot-color/c
(plot-foreground color) -> void?
  color : plot-color/c
=  0
parameter
(plot-background) -> plot-color/c
(plot-background color) -> void?
  color : plot-color/c
=  0
parameter
(plot-foreground-alpha) -> (real-in 0 1)
(plot-foreground-alpha alpha) -> void?
  alpha : (real-in 0 1)
=  1
parameter
(plot-background-alpha) -> (real-in 0 1)
(plot-background-alpha alpha) -> void?
  alpha : (real-in 0 1)
=  1
parameter
(plot-font-size) -> (>=/c 0)
(plot-font-size size) -> void?
  size : (>=/c 0)
=  11
parameter
(plot-font-family) -> font-family/c
(plot-font-family family) -> void?
  family : font-family/c
=  'roman
parameter
(plot-line-width) -> (>=/c 0)
(plot-line-width width) -> void?
  width : (>=/c 0)
=  1
parameter
(plot-legend-anchor) -> anchor/c
(plot-legend-anchor anchor) -> void?
  anchor : anchor/c
=  'top-left
parameter
(plot-legend-box-alpha) -> (real-in 0 1)
(plot-legend-box-alpha alpha) -> void?
  alpha : (real-in 0 1)
=  2/3
parameter
(plot-tick-size) -> (>=/c 0)
(plot-tick-size size) -> void?
  size : (>=/c 0)
=  10
parameter
(plot-title) -> (or/c string? #f)
(plot-title title) -> void?
  title : (or/c string? #f)
=  #f
parameter
(plot-x-label) -> (or/c string? #f)
(plot-x-label label) -> void?
  label : (or/c string? #f)
=  "x axis"
parameter
(plot-y-label) -> (or/c string? #f)
(plot-y-label label) -> void?
  label : (or/c string? #f)
=  "y axis"
parameter
(plot-z-label) -> (or/c string? #f)
(plot-z-label label) -> void?
  label : (or/c string? #f)
=  #f
parameter
(plot-x-far-label) -> (or/c string? #f)
(plot-x-far-label label) -> void?
  label : (or/c string? #f)
=  #f
parameter
(plot-y-far-label) -> (or/c string? #f)
(plot-y-far-label label) -> void?
  label : (or/c string? #f)
=  #f
parameter
(plot-z-far-label) -> (or/c string? #f)
(plot-z-far-label label) -> void?
  label : (or/c string? #f)
=  #f
parameter
(plot-x-tick-label-anchor) -> anchor/c
(plot-x-tick-label-anchor anchor) -> void?
  anchor : anchor/c
=  'top
parameter
(plot-x-tick-label-angle) -> real?
(plot-x-tick-label-angle angle) -> void?
  angle : real?
=  0
parameter
(plot-y-tick-label-anchor) -> anchor/c
(plot-y-tick-label-anchor anchor) -> void?
  anchor : anchor/c
=  'right
parameter
(plot-y-tick-label-angle) -> real?
(plot-y-tick-label-angle angle) -> void?
  angle : real?
=  0
parameter
(plot-x-far-tick-label-anchor) -> anchor/c
(plot-x-far-tick-label-anchor anchor) -> void?
  anchor : anchor/c
=  'bottom
parameter
(plot-x-far-tick-label-angle) -> real?
(plot-x-far-tick-label-angle angle) -> void?
  angle : real?
=  0
parameter
(plot-y-far-tick-label-anchor) -> anchor/c
(plot-y-far-tick-label-anchor anchor) -> void?
  anchor : anchor/c
=  'left
parameter
(plot-y-far-tick-label-angle) -> real?
(plot-y-far-tick-label-angle angle) -> void?
  angle : real?
=  0
parameter
(plot-x-axis?) -> boolean?
(plot-x-axis? axis?) -> void?
  axis? : boolean?
=  #t
parameter
(plot-x-far-axis?) -> boolean?
(plot-x-far-axis? axis?) -> void?
  axis? : boolean?
=  #t
parameter
(plot-y-axis?) -> boolean?
(plot-y-axis? axis?) -> void?
  axis? : boolean?
=  #t
parameter
(plot-y-far-axis?) -> boolean?
(plot-y-far-axis? axis?) -> void?
  axis? : boolean?
=  #t
parameter
(plot-z-axis?) -> boolean?
(plot-z-axis? axis?) -> void?
  axis? : boolean?
=  #t
parameter
(plot-z-far-axis?) -> boolean?
(plot-z-far-axis? axis?) -> void?
  axis? : boolean?
=  #t
parameter
(plot-animating?) -> boolean?
(plot-animating? animating?) -> void?
  animating? : boolean?
=  #f
procedure
(animated-samples samples) -> (and/c exact-integer? (>=/c 2))
  samples : (and/c exact-integer? (>=/c 2))
=  (cond [(plot-animating?)  (max 2 (ceiling (* 1/4 samples)))]
         [else  samples])
parameter
(plot-decorations?) -> boolean?
(plot-decorations? decorations?) -> void?
  decorations? : boolean?
=  #t
parameter
(line-samples) -> (and/c exact-integer? (>=/c 2))
(line-samples samples) -> void?
  samples : (and/c exact-integer? (>=/c 2))
=  500
parameter
(line-color) -> plot-color/c
(line-color color) -> void?
  color : plot-color/c
=  1
parameter
(line-width) -> (>=/c 0)
(line-width width) -> void?
  width : (>=/c 0)
=  1
parameter
(line-style) -> plot-pen-style/c
(line-style style) -> void?
  style : plot-pen-style/c
=  'solid
parameter
(line-alpha) -> (real-in 0 1)
(line-alpha alpha) -> void?
  alpha : (real-in 0 1)
=  1
parameter
(interval-color) -> plot-color/c
(interval-color color) -> void?
  color : plot-color/c
=  3
parameter
(interval-style) -> plot-brush-style/c
(interval-style style) -> void?
  style : plot-brush-style/c
=  'solid
parameter
(interval-line1-color) -> plot-color/c
(interval-line1-color color) -> void?
  color : plot-color/c
=  3
parameter
(interval-line1-width) -> (>=/c 0)
(interval-line1-width width) -> void?
  width : (>=/c 0)
=  1
parameter
(interval-line1-style) -> plot-pen-style/c
(interval-line1-style style) -> void?
  style : plot-pen-style/c
=  'solid
parameter
(interval-line2-color) -> plot-color/c
(interval-line2-color color) -> void?
  color : plot-color/c
=  3
parameter
(interval-line2-width) -> (>=/c 0)
(interval-line2-width width) -> void?
  width : (>=/c 0)
=  1
parameter
(interval-line2-style) -> plot-pen-style/c
(interval-line2-style style) -> void?
  style : plot-pen-style/c
=  'solid
parameter
(interval-alpha) -> (real-in 0 1)
(interval-alpha alpha) -> void?
  alpha : (real-in 0 1)
=  3/4
parameter
(point-sym) -> point-sym/c
(point-sym sym) -> void?
  sym : point-sym/c
=  'circle
parameter
(point-color) -> plot-color/c
(point-color color) -> void?
  color : plot-color/c
=  0
parameter
(point-size) -> (>=/c 0)
(point-size size) -> void?
  size : (>=/c 0)
=  6
parameter
(point-line-width) -> (>=/c 0)
(point-line-width width) -> void?
  width : (>=/c 0)
=  1
parameter
(point-alpha) -> (real-in 0 1)
(point-alpha alpha) -> void?
  alpha : (real-in 0 1)
=  1
parameter
(vector-field-samples) -> exact-positive-integer?
(vector-field-samples samples) -> void?
  samples : exact-positive-integer?
=  20
parameter
(vector-field-color) -> plot-color/c
(vector-field-color color) -> void?
  color : plot-color/c
=  1
parameter
(vector-field-line-width) -> (>=/c 0)
(vector-field-line-width width) -> void?
  width : (>=/c 0)
=  2/3
parameter
(vector-field-line-style) -> plot-pen-style/c
(vector-field-line-style style) -> void?
  style : plot-pen-style/c
=  'solid
parameter
(vector-field-scale)
 -> (or/c real? (one-of/c 'auto 'normalized))
(vector-field-scale scale) -> void?
  scale : (or/c real? (one-of/c 'auto 'normalized))
=  'auto
parameter
(vector-field-alpha) -> (real-in 0 1)
(vector-field-alpha alpha) -> void?
  alpha : (real-in 0 1)
=  1
parameter
(vector-field3d-samples) -> exact-positive-integer?
(vector-field3d-samples samples) -> void?
  samples : exact-positive-integer?
=  9
parameter
(error-bar-width) -> (>=/c 0)
(error-bar-width width) -> void?
  width : (>=/c 0)
=  6
parameter
(error-bar-color) -> plot-color/c
(error-bar-color color) -> void?
  color : plot-color/c
=  0
parameter
(error-bar-line-width) -> (>=/c 0)
(error-bar-line-width width) -> void?
  width : (>=/c 0)
=  1
parameter
(error-bar-line-style) -> plot-pen-style/c
(error-bar-line-style style) -> void?
  style : plot-pen-style/c
=  'solid
parameter
(error-bar-alpha) -> (real-in 0 1)
(error-bar-alpha alpha) -> void?
  alpha : (real-in 0 1)
=  2/3
procedure
(default-contour-colors zs) -> (listof plot-color/c)
  zs : (listof real?)
=  (color-seq* (list (->pen-color 5) (->pen-color 0) (->pen-color 1))
               (length zs))
procedure
(default-contour-fill-colors z-ivls) -> (listof plot-color/c)
  z-ivls : (listof ivl?)
=  (color-seq* (list (->brush-color 5) (->brush-color 0) (->brush-color 1))
               (length z-ivls))
parameter
(contour-samples) -> (and/c exact-integer? (>=/c 2))
(contour-samples samples) -> void?
  samples : (and/c exact-integer? (>=/c 2))
=  51
parameter
(contour-levels)
 -> (or/c 'auto exact-positive-integer? (listof real?))
(contour-levels levels) -> void?
  levels : (or/c 'auto exact-positive-integer? (listof real?))
=  'auto
parameter
(contour-colors) -> (plot-colors/c (listof real?))
(contour-colors colors) -> void?
  colors : (plot-colors/c (listof real?))
=  default-contour-colors
parameter
(contour-widths) -> (pen-widths/c (listof real?))
(contour-widths widths) -> void?
  widths : (pen-widths/c (listof real?))
=  '(1)
parameter
(contour-styles) -> (plot-pen-styles/c (listof real?))
(contour-styles styles) -> void?
  styles : (plot-pen-styles/c (listof real?))
=  '(solid long-dash)
parameter
(contour-alphas) -> (alphas/c (listof real?))
(contour-alphas alphas) -> void?
  alphas : (alphas/c (listof real?))
=  '(1)
parameter
(contour-interval-colors) -> (plot-colors/c (listof ivl?))
(contour-interval-colors colors) -> void?
  colors : (plot-colors/c (listof ivl?))
=  default-contour-fill-colors
parameter
(contour-interval-styles)
 -> (plot-brush-styles/c (listof ivl?))
(contour-interval-styles styles) -> void?
  styles : (plot-brush-styles/c (listof ivl?))
=  '(solid)
parameter
(contour-interval-alphas) -> (alphas/c (listof ivl?))
(contour-interval-alphas alphas) -> void?
  alphas : (alphas/c (listof ivl?))
=  '(1)
parameter
(rectangle-color) -> plot-color/c
(rectangle-color color) -> void?
  color : plot-color/c
=  3
parameter
(rectangle-style) -> plot-brush-style/c
(rectangle-style style) -> void?
  style : plot-brush-style/c
=  'solid
parameter
(rectangle-line-color) -> plot-color/c
(rectangle-line-color color) -> void?
  color : plot-color/c
=  3
parameter
(rectangle-line-width) -> (>=/c 0)
(rectangle-line-width width) -> void?
  width : (>=/c 0)
=  1
parameter
(rectangle-line-style) -> plot-pen-style/c
(rectangle-line-style style) -> void?
  style : plot-pen-style/c
=  'solid
parameter
(rectangle-alpha) -> (real-in 0 1)
(rectangle-alpha alpha) -> void?
  alpha : (real-in 0 1)
=  1
parameter
(rectangle3d-line-width) -> (>=/c 0)
(rectangle3d-line-width width) -> void?
  width : (>=/c 0)
=  1/3
parameter
(discrete-histogram-gap) -> (real-in 0 1)
(discrete-histogram-gap gap) -> void?
  gap : (real-in 0 1)
=  1/8
parameter
(discrete-histogram-skip) -> (>=/c 0)
(discrete-histogram-skip skip) -> void?
  skip : (>=/c 0)
=  1
parameter
(discrete-histogram-invert?) -> boolean?
(discrete-histogram-invert? invert?) -> void?
  invert? : boolean?
=  #f
parameter
(stacked-histogram-alphas) -> (alphas/c nat/c)
(stacked-histogram-alphas alphas) -> void?
  alphas : (alphas/c nat/c)
=  '(1)
parameter
(stacked-histogram-colors) -> (plot-colors/c nat/c)
(stacked-histogram-colors colors) -> void?
  colors : (plot-colors/c nat/c)
=  (λ (n) (build-list n add1))
parameter
(stacked-histogram-line-colors) -> (plot-colors/c nat/c)
(stacked-histogram-line-colors colors) -> void?
  colors : (plot-colors/c nat/c)
=  (stacked-histogram-colors)
parameter
(stacked-histogram-line-styles) -> (plot-pen-styles/c nat/c)
(stacked-histogram-line-styles styles) -> void?
  styles : (plot-pen-styles/c nat/c)
=  '(solid)
parameter
(stacked-histogram-line-widths) -> (pen-widths/c nat/c)
(stacked-histogram-line-widths widths) -> void?
  widths : (pen-widths/c nat/c)
=  '(1)
parameter
(stacked-histogram-styles) -> (plot-brush-styles/c nat/c)
(stacked-histogram-styles styles) -> void?
  styles : (plot-brush-styles/c nat/c)
=  '(solid)
parameter
(x-axis-alpha) -> (real-in 0 1)
(x-axis-alpha alpha) -> void?
  alpha : (real-in 0 1)
=  1
parameter
(y-axis-alpha) -> (real-in 0 1)
(y-axis-alpha alpha) -> void?
  alpha : (real-in 0 1)
=  1
parameter
(z-axis-alpha) -> (real-in 0 1)
(z-axis-alpha alpha) -> void?
  alpha : (real-in 0 1)
=  1
parameter
(x-axis-far?) -> boolean?
(x-axis-far? far?) -> void?
  far? : boolean?
=  #f
parameter
(y-axis-far?) -> boolean?
(y-axis-far? far?) -> void?
  far? : boolean?
=  #f
parameter
(z-axis-far?) -> boolean?
(z-axis-far? far?) -> void?
  far? : boolean?
=  #f
parameter
(x-axis-ticks?) -> boolean?
(x-axis-ticks? ticks?) -> void?
  ticks? : boolean?
=  #t
parameter
(y-axis-ticks?) -> boolean?
(y-axis-ticks? ticks?) -> void?
  ticks? : boolean?
=  #t
parameter
(z-axis-ticks?) -> boolean?
(z-axis-ticks? ticks?) -> void?
  ticks? : boolean?
=  #t
parameter
(x-axis-labels?) -> boolean?
(x-axis-labels? labels?) -> void?
  labels? : boolean?
=  #f
parameter
(y-axis-labels?) -> boolean?
(y-axis-labels? labels?) -> void?
  labels? : boolean?
=  #f
parameter
(z-axis-labels?) -> boolean?
(z-axis-labels? labels?) -> void?
  labels? : boolean?
=  #f
parameter
(polar-axes-number) -> exact-nonnegative-integer?
(polar-axes-number number) -> void?
  number : exact-nonnegative-integer?
=  12
parameter
(polar-axes-alpha) -> (real-in 0 1)
(polar-axes-alpha alpha) -> void?
  alpha : (real-in 0 1)
=  1/2
parameter
(polar-axes-ticks?) -> boolean?
(polar-axes-ticks? ticks?) -> void?
  ticks? : boolean?
=  #t
parameter
(polar-axes-labels?) -> boolean?
(polar-axes-labels? labels?) -> void?
  labels? : boolean?
=  #t
parameter
(label-anchor) -> anchor/c
(label-anchor anchor) -> void?
  anchor : anchor/c
=  'left
parameter
(label-angle) -> real?
(label-angle angle) -> void?
  angle : real?
=  0
parameter
(label-alpha) -> (real-in 0 1)
(label-alpha alpha) -> void?
  alpha : (real-in 0 1)
=  1
parameter
(label-point-size) -> (>=/c 0)
(label-point-size size) -> void?
  size : (>=/c 0)
=  4
parameter
(plot3d-samples) -> (and/c exact-integer? (>=/c 2))
(plot3d-samples samples) -> void?
  samples : (and/c exact-integer? (>=/c 2))
=  41
parameter
(plot3d-angle) -> real?
(plot3d-angle angle) -> void?
  angle : real?
=  30
parameter
(plot3d-altitude) -> real?
(plot3d-altitude altitude) -> void?
  altitude : real?
=  60
parameter
(plot3d-ambient-light) -> (real-in 0 1)
(plot3d-ambient-light light) -> void?
  light : (real-in 0 1)
=  2/3
parameter
(plot3d-diffuse-light?) -> boolean?
(plot3d-diffuse-light? light?) -> void?
  light? : boolean?
=  #t
parameter
(plot3d-specular-light?) -> boolean?
(plot3d-specular-light? light?) -> void?
  light? : boolean?
=  #t
parameter
(surface-color) -> plot-color/c
(surface-color color) -> void?
  color : plot-color/c
=  0
parameter
(surface-style) -> plot-brush-style/c
(surface-style style) -> void?
  style : plot-brush-style/c
=  'solid
parameter
(surface-line-color) -> plot-color/c
(surface-line-color color) -> void?
  color : plot-color/c
=  0
parameter
(surface-line-width) -> (>=/c 0)
(surface-line-width width) -> void?
  width : (>=/c 0)
=  1/3
parameter
(surface-line-style) -> plot-pen-style/c
(surface-line-style style) -> void?
  style : plot-pen-style/c
=  'solid
parameter
(surface-alpha) -> (real-in 0 1)
(surface-alpha alpha) -> void?
  alpha : (real-in 0 1)
=  1
parameter
(contour-interval-line-colors) -> (plot-colors/c (listof ivl?))
(contour-interval-line-colors colors) -> void?
  colors : (plot-colors/c (listof ivl?))
=  '(0)
parameter
(contour-interval-line-widths) -> (pen-widths/c (listof ivl?))
(contour-interval-line-widths widths) -> void?
  widths : (pen-widths/c (listof ivl?))
=  '(1/3)
parameter
(contour-interval-line-styles)
 -> (plot-pen-styles/c (listof ivl?))
(contour-interval-line-styles styles) -> void?
  styles : (plot-pen-styles/c (listof ivl?))
=  '(solid)
procedure
(default-isosurface-colors zs) -> (listof plot-color/c)
  zs : (listof real?)
=  (color-seq* (list (->brush-color 5) (->brush-color 0) (->brush-color 1))
               (length zs))
procedure
(default-isosurface-line-colors zs) -> (listof plot-color/c)
  zs : (listof real?)
=  (color-seq* (list (->pen-color 5) (->pen-color 0) (->pen-color 1))
               (length zs))
parameter
(isosurface-levels)
 -> (or/c 'auto exact-positive-integer? (listof real?))
(isosurface-levels levels) -> void?
  levels : (or/c 'auto exact-positive-integer? (listof real?))
=  'auto
parameter
(isosurface-colors) -> (plot-colors/c (listof real?))
(isosurface-colors colors) -> void?
  colors : (plot-colors/c (listof real?))
=  default-isosurface-colors
parameter
(isosurface-styles) -> (plot-brush-styles/c (listof real?))
(isosurface-styles styles) -> void?
  styles : (plot-brush-styles/c (listof real?))
=  '(solid)
parameter
(isosurface-line-colors) -> (plot-colors/c (listof real?))
(isosurface-line-colors colors) -> void?
  colors : (plot-colors/c (listof real?))
=  default-isosurface-line-colors
parameter
(isosurface-line-widths) -> (pen-widths/c (listof real?))
(isosurface-line-widths widths) -> void?
  widths : (pen-widths/c (listof real?))
=  '(1/3)
parameter
(isosurface-line-styles) -> (plot-pen-styles/c (listof real?))
(isosurface-line-styles styles) -> void?
  styles : (plot-pen-styles/c (listof real?))
=  '(solid)
parameter
(isosurface-alphas) -> (alphas/c (listof real?))
(isosurface-alphas alphas) -> void?
  alphas : (alphas/c (listof real?))
=  '(1/2)
procedure
(renderer2d? value) -> boolean?
  value : any/c
procedure
(renderer3d? value) -> boolean?
  value : any/c
procedure
(nonrenderer? value) -> boolean?
  value : any/c
value
anchor/c : contract?
=  (one-of/c 'top-left    'top    'top-right
             'left        'center 'right
             'bottom-left 'bottom 'bottom-right)
value
color/c : contract?
=  (or/c (list/c real? real? real?)
         string? symbol?
         (is-a?/c color%))
value
plot-color/c : contract?
=  (or/c exact-integer? color/c)
value
plot-pen-style/c : contract?
=  (or/c exact-integer?
         (one-of/c 'transparent 'solid    'dot 'long-dash
                   'short-dash  'dot-dash))
value
plot-brush-style/c : contract?
=  (or/c exact-integer?
         (one-of/c 'transparent      'solid
                   'bdiagonal-hatch  'fdiagonal-hatch 'crossdiag-hatch
                   'horizontal-hatch 'vertical-hatch  'cross-hatch))
value
font-family/c : flat-contract?
value
point-sym/c : contract?
=  (or/c char? string? integer? (apply one-of/c known-point-symbols))
value
known-point-symbols : (listof symbol?)
=  (list 'dot               'point            'pixel
         'plus              'times            'asterisk
         '5asterisk         'odot             'oplus
         'otimes            'oasterisk        'o5asterisk
         'circle            'square           'diamond
         'triangle          'fullcircle       'fullsquare
         'fulldiamond       'fulltriangle     'triangleup
         'triangledown      'triangleleft     'triangleright
         'fulltriangleup    'fulltriangledown 'fulltriangleleft
         'fulltriangleright 'rightarrow       'leftarrow
         'uparrow           'downarrow        '4star
         '5star             '6star            '7star
         '8star             'full4star        'full5star
         'full6star         'full7star        'full8star
         'circle1           'circle2          'circle3
         'circle4           'circle5          'circle6
         'circle7           'circle8          'bullet
         'fullcircle1       'fullcircle2      'fullcircle3
         'fullcircle4       'fullcircle5      'fullcircle6
         'fullcircle7       'fullcircle8)
procedure
(maybe-function/c in-contract out-contract) -> contract?
  in-contract : contract?
  out-contract : contract?
=  (or/c out-contract (in-contract . -> . out-contract))
procedure
(maybe-apply f arg) -> any/c
  f : (maybe-function/c any/c any/c)
  arg : any/c
procedure
(plot-colors/c in-contract) -> contract?
  in-contract : contract?
=  (maybe-function/c in-contract (listof plot-color/c))
procedure
(plot-pen-styles/c in-contract) -> contract?
  in-contract : contract?
=  (maybe-function/c in-contract (listof plot-pen-style/c))
procedure
(pen-widths/c in-contract) -> contract?
  in-contract : contract?
=  (maybe-function/c in-contract (listof (>=/c 0)))
procedure
(plot-brush-styles/c in-contract) -> contract?
  in-contract : contract?
=  (maybe-function/c in-contract (listof plot-brush-style/c))
procedure
(alphas/c in-contract) -> contract?
  in-contract : contract?
=  (maybe-function/c in-contract (listof (real-in 0 1)))
procedure
(labels/c in-contract) -> contract?
  in-contract : contract?
=  (maybe-function/c in-contract (listof (or/c string? #f)))
procedure
(mix plot-data ...) -> (any/c . -> . void?)
  plot-data : (any/c . -> . void?)
procedure
(line  f                     
      [#:samples samples     
       #:width width         
       #:color color         
       #:mode mode           
       #:mapping mapping     
       #:t-min t-min         
       #:t-max t-max])   -> renderer2d?
  f : (real? . -> . (or/c real? (vector/c real? real?)))
  samples : (and/c exact-integer? (>=/c 2)) = 150
  width : (>=/c 0) = 1
  color : plot-color/c = 'red
  mode : (one-of/c 'standard 'parametric) = 'standard
  mapping : (one-of/c 'cartesian 'polar) = 'cartesian
  t-min : real? = -5
  t-max : real? = 5
procedure
(contour  f                     
         [#:samples samples     
          #:width width         
          #:color color         
          #:levels levels]) -> renderer2d?
  f : (real? real? . -> . real?)
  samples : (and/c exact-integer? (>=/c 2)) = 50
  width : (>=/c 0) = 1
  color : plot-color/c = 'black
  levels : (or/c (and/c exact-integer? (>=/c 2)) (listof real?))
         = 10
procedure
(shade f [#:samples samples #:levels levels]) -> renderer2d?
  f : (real? real? . -> . real?)
  samples : (and/c exact-integer? (>=/c 2)) = 50
  levels : (or/c (and/c exact-integer? (>=/c 2)) (listof real?))
         = 10
procedure
(surface  f                     
         [#:samples samples     
          #:width width         
          #:color color])   -> renderer3d?
  f : (real? real? . -> . real?)
  samples : (and/c exact-integer? (>=/c 2)) = 50
  width : (>=/c 0) = 1
  color : plot-color/c = 'black
procedure
(plot  data                      
      [#:width width             
       #:height height           
       #:x-min x-min             
       #:x-max x-max             
       #:y-min y-min             
       #:y-max y-max             
       #:x-label x-label         
       #:y-label y-label         
       #:title title             
       #:fgcolor fgcolor         
       #:bgcolor bgcolor         
       #:lncolor lncolor         
       #:out-file out-file]) -> (is-a?/c image-snip%)
  data : ((is-a?/c 2d-plot-area%) . -> . void?)
  width : real? = 400
  height : real? = 400
  x-min : real? = -5
  x-max : real? = 5
  y-min : real? = -5
  y-max : real? = 5
  x-label : string? = "X axis"
  y-label : string? = "Y axis"
  title : string? = ""
  fgcolor : (list/c byte? byte? byte?) = '(0 0 0)
  bgcolor : (list/c byte? byte? byte?) = '(255 255 255)
  lncolor : (list/c byte? byte? byte?) = '(255 0 0)
  out-file : (or/c path-string? output-port? #f) = #f
procedure
(plot3d  data                      
        [#:width width             
         #:height height           
         #:x-min x-min             
         #:x-max x-max             
         #:y-min y-min             
         #:y-max y-max             
         #:z-min z-min             
         #:z-max z-max             
         #:alt alt                 
         #:az az                   
         #:x-label x-label         
         #:y-label y-label         
         #:z-label z-label         
         #:title title             
         #:fgcolor fgcolor         
         #:bgcolor bgcolor         
         #:lncolor lncolor         
         #:out-file out-file]) -> (is-a?/c image-snip%)
  data : ((is-a?/c 3d-plot-area%) . -> . void?)
  width : real? = 400
  height : real? = 400
  x-min : real? = -5
  x-max : real? = 5
  y-min : real? = -5
  y-max : real? = 5
  z-min : real? = -5
  z-max : real? = 5
  alt : real? = 30
  az : real? = 45
  x-label : string? = "X axis"
  y-label : string? = "Y axis"
  z-label : string? = "Z axis"
  title : string? = ""
  fgcolor : (list/c byte? byte? byte?) = '(0 0 0)
  bgcolor : (list/c byte? byte? byte?) = '(255 255 255)
  lncolor : (list/c byte? byte? byte?) = '(255 0 0)
  out-file : (or/c path-string? output-port? #f) = #f
procedure
(points vecs [#:sym sym #:color color])
 -> ((is-a?/c 2d-plot-area%) . -> . void?)
  vecs : (listof (vectorof real?))
  sym : (or/c char? string? exact-integer? symbol?) = 'square
  color : plot-color? = 'black
procedure
(line  f                 
      [#:samples samples 
       #:width width     
       #:color color     
       #:mode mode       
       #:mapping mapping 
       #:t-min t-min     
       #:t-max t-max])   
 -> ((is-a?/c 2d-plot-area%) . -> . void?)
  f : (real? . -> . (or/c real? (vector/c real? real?)))
  samples : (and/c exact-integer? (>=/c 2)) = 150
  width : (>=/c 0) = 1
  color : plot-color/c = 'red
  mode : (one-of/c 'standard 'parametric) = 'standard
  mapping : (one-of/c 'cartesian 'polar) = 'cartesian
  t-min : real? = -5
  t-max : real? = 5
procedure
(error-bars vecs [#:color color])
 -> ((is-a?/c 2d-plot-area%) . -> . void?)
  vecs : (listof (vector/c real? real? real?))
  color : plot-color? = 'black
procedure
(vector-field  f                 
              [#:samples samples 
               #:width width     
               #:color color     
               #:style style])   
 -> ((is-a?/c 2d-plot-area%) . -> . void?)
  f : ((vector/c real? real?) . -> . (vector/c real? real?))
  samples : (and/c exact-integer? (>=/c 2)) = 20
  width : exact-positive-integer? = 1
  color : plot-color? = 'red
  style : (one-of/c 'scaled 'normalized 'real) = 'scaled
procedure
(contour  f                 
         [#:samples samples 
          #:width width     
          #:color color     
          #:levels levels]) 
 -> ((is-a?/c 2d-plot-area%) . -> . void?)
  f : (real? real? . -> . real?)
  samples : exact-nonnegative-integer? = 50
  width : (>=/c 0) = 1
  color : plot-color/c = 'black
  levels : (or/c (and/c exact-integer? (>=/c 2)) (listof real?))
         = 10
procedure
(shade f [#:samples samples #:levels levels])
 -> ((is-a?/c 2d-plot-area%) . -> . void?)
  f : (real? real? . -> . real?)
  samples : (and/c exact-integer? (>=/c 2)) = 50
  levels : (or/c (and/c exact-integer? (>=/c 2)) (listof real?))
         = 10
procedure
(surface  f                 
         [#:samples samples 
          #:width width     
          #:color color])   
 -> ((is-a?/c 3d-plot-area%) . -> . void?)
  f : (real? real? . -> . real?)
  samples : (and/c exact-integer? (>=/c 2)) = 50
  width : (>=/c 0) = 1
  color : plot-color/c = 'black
procedure
(mix data ...) -> (any/c . -> . void?)
  data : (any/c . -> . void?)
procedure
(plot-color? v) -> boolean?
  v : any/c
procedure
(derivative f [h]) -> (real? . -> . real?)
  f : (real? . -> . real?)
  h : real? = 1e-06
procedure
(gradient f [h])
 -> ((vector/c real? real?) . -> . (vector/c real? real?))
  f : (real? real? . -> . real?)
  h : real? = 1e-06
procedure
(make-vec fx fy)
 -> ((vector/c real? real?) . -> . (vector/c real? real?))
  fx : (real? real? . -> . real?)
  fy : (real? real? . -> . real?)
