1 | [[tags: egg]] |
---|
2 | |
---|
3 | == slib-charplot |
---|
4 | |
---|
5 | [[toc:]] |
---|
6 | |
---|
7 | |
---|
8 | === Description |
---|
9 | |
---|
10 | A port of the [[http://people.csail.mit.edu/jaffer/SLIB|SLIB]] character |
---|
11 | plotting library. For SLIB documentation see |
---|
12 | [[http://people.csail.mit.edu/jaffer/slib/Character-Plotting.html#Character-Plotting|charplot]]. |
---|
13 | |
---|
14 | === Documentation |
---|
15 | |
---|
16 | '''Note''' that the SLIB documentation describes {{charplot:dimensions}}. |
---|
17 | This, and other plot defining variables, are ''not'' exported here. Rather |
---|
18 | {{parameter}}s are provided. |
---|
19 | |
---|
20 | ===== Usage |
---|
21 | |
---|
22 | <enscript language=scheme> |
---|
23 | (import slib-charplot) |
---|
24 | </enscript> |
---|
25 | |
---|
26 | ===== plot-dimensions |
---|
27 | |
---|
28 | <procedure>(plot-dimensions [DIMS]) -> (or boolean (list exact-integer exact-integer))</procedure> |
---|
29 | |
---|
30 | A list of the maximum height (number of lines) and maximum width (number of |
---|
31 | columns) for the graph, its scales, and labels. |
---|
32 | |
---|
33 | The default value uses the output-port-height and output-port-width of |
---|
34 | current-output-port at plot time. |
---|
35 | |
---|
36 | ; {{DIMS}} : {{(or #f (list exact-integer exact-integer))}} ; (Height-rows Width-columns), default {{#f}}. |
---|
37 | |
---|
38 | The left-margin effects the width consumed. The effective minimum dimensions |
---|
39 | are {{(4 (+ 5 (plot-left-margin)))}}. |
---|
40 | |
---|
41 | Use this {{parameter}} instead of {{charplot:dimensions}}. |
---|
42 | |
---|
43 | ===== plot-left-margin |
---|
44 | |
---|
45 | <procedure>(plot-left-margin [WID]) -> exact-integer</procedure> |
---|
46 | |
---|
47 | ; {{WID}} : {{(or #f exact-integer)}} ; Width-columns, initial {{12}}, with default {{2}}. |
---|
48 | |
---|
49 | {{2}} is the the minimum value. |
---|
50 | |
---|
51 | Use this {{parameter}} instead of {{charplot:left-margin}}. |
---|
52 | |
---|
53 | ===== xborder-char |
---|
54 | ===== yborder-char |
---|
55 | ===== xaxis-char |
---|
56 | ===== yaxis-char |
---|
57 | ===== xtick-char |
---|
58 | ===== bar-char |
---|
59 | |
---|
60 | <procedure>(xborder-char [CHAR]) -> char</procedure> |
---|
61 | <procedure>(yborder-char [CHAR]) -> char</procedure> |
---|
62 | <procedure>(xaxis-char [CHAR]) -> char</procedure> |
---|
63 | <procedure>(yaxis-char [CHAR]) -> char</procedure> |
---|
64 | <procedure>(xtick-char [CHAR]) -> char</procedure> |
---|
65 | <procedure>(bar-char [CHAR]) -> char</procedure> |
---|
66 | |
---|
67 | Use these {{parameter}}s instead of {{char:xborder}}, {{char:yborder}}, {{char:xaxis}}, |
---|
68 | {{char:yaxis}}, {{char:xtick}} & {{char:bar}}. |
---|
69 | |
---|
70 | ===== curves-chars |
---|
71 | |
---|
72 | <procedure>(curves-chars [CHARS]) -> exact-integer</procedure> |
---|
73 | |
---|
74 | ; {{CHARS}} : {{(or #f string)}} ; characters to use for the plot curve, {{#f}} uses the default set. |
---|
75 | |
---|
76 | Use this {{parameter}} instead of {{char:curves}}. |
---|
77 | |
---|
78 | ===== plot |
---|
79 | |
---|
80 | <procedure>(plot COORDS X-LABEL Y-LABEL [HISTOGRAM?])</procedure> |
---|
81 | |
---|
82 | {{COORDS}} is an array, list or vector of coordinates, lists of x and y coordinates. |
---|
83 | {{X-LABEL}} and {{Y-LABEL}} are strings with which to label the x and y axes. |
---|
84 | |
---|
85 | ; {{COORDS}} : {{(or array list vector)}} ; coordinate data elements |
---|
86 | ; {{X-LABEL}} : {{string}} ; x axis label. |
---|
87 | ; {{Y-LABEL}} : {{string}} ; y axis label. |
---|
88 | ; {{HISTOGRAM?}} : {{boolean}} ; line or filled graph. |
---|
89 | |
---|
90 | The elements of a {{list}} are of the form {{(X Y1 ... Yn)}}, where {{(< 0 |
---|
91 | n)}}. Other accepted forms are: {{(X . Y)}} & {{(X (Y1 ... Yn))}}, which are |
---|
92 | interpreted as {{(X Y)}} & {{(X Y1 ... Yn)}}, respectively. |
---|
93 | |
---|
94 | The elements of a 1-dim {{array}} or {{vector}} are of type {{Y}} or {{(Y1 ... |
---|
95 | Yn))}}. The missing {{X}} value is generated from {{[0 .. c-1]}}, where {{c}} |
---|
96 | is the cardinality of the {{array}} or {{vector}}. The generated data is then |
---|
97 | {{(X Y ...)}}. |
---|
98 | |
---|
99 | The elements of a 2-dim {{array}} are interpreted as {{(X Y ...)}}. |
---|
100 | |
---|
101 | The following {{COORDS}} produce the same plot: |
---|
102 | * {{(list->array 2 '#() '((0 12 21) (1 21 12)))}} |
---|
103 | * {{#((12 21) (21 12))}} |
---|
104 | * {{((0 12 21) (1 21 12))}} |
---|
105 | |
---|
106 | <procedure>(plot FUNC X1 X2 [NPTS])</procedure> |
---|
107 | |
---|
108 | Plots the function of the single-argument {{FUNC}} over the range {{X1}} to |
---|
109 | {{X2}}. If the optional integer argument {{NPTS}} is supplied, it specifies |
---|
110 | the number of points to evaluate func at. |
---|
111 | |
---|
112 | ; {{FUNC}} : {{(number -> float)}} ; function to plot. |
---|
113 | ; {{X1}} : {{number}} ; plot range start. |
---|
114 | ; {{X2}} : {{number}} ; plot range end. |
---|
115 | ; {{NPTS}} : {{exact-integer}} ; number of points to evaluate {{FUNC}}, default {{64}}. |
---|
116 | |
---|
117 | ===== histograph |
---|
118 | |
---|
119 | <procedure>(histograph DATA LABEL)</procedure> |
---|
120 | |
---|
121 | Creates and displays a histogram of the numerical values contained in vector |
---|
122 | or list {{DATA}}. {{LABEL}} is a string. |
---|
123 | |
---|
124 | ; {{DATA}} : {{(or list vector)}} ; elements are {{number}}. |
---|
125 | ; {{LABEL}} : {{string}} ; plot label. |
---|
126 | |
---|
127 | |
---|
128 | === Author |
---|
129 | |
---|
130 | Aubrey Jaffer |
---|
131 | |
---|
132 | |
---|
133 | === Maintainer |
---|
134 | |
---|
135 | [[/users/kon-lovett|Kon Lovett]] |
---|
136 | |
---|
137 | |
---|
138 | === Requirements |
---|
139 | |
---|
140 | [[srfi-63]] |
---|
141 | |
---|
142 | |
---|
143 | === Version history |
---|
144 | |
---|
145 | ; 1.0.3 : {{plot}} accepts a {{SRFI-63}} {{array}}. |
---|
146 | ; 1.0.0 : C5 release. |
---|
147 | |
---|
148 | |
---|
149 | === License |
---|
150 | |
---|
151 | Copyright (C) 1992, 1993, 2001, 2003 Aubrey Jaffer |
---|
152 | |
---|
153 | Permission to copy this software, to modify it, to redistribute it, |
---|
154 | to distribute modified versions, and to use it for any purpose is |
---|
155 | granted, subject to the following restrictions and understandings. |
---|
156 | |
---|
157 | 1. Any copy made of this software must include this copyright notice |
---|
158 | in full. |
---|
159 | |
---|
160 | 2. I have made no warranty or representation that the operation of |
---|
161 | this software will be error-free, and I am under no obligation to |
---|
162 | provide any services, by way of maintenance, update, or otherwise. |
---|
163 | |
---|
164 | 3. In conjunction with products arising from the use of this |
---|
165 | material, there shall be no use of my name in any advertising, |
---|
166 | promotional, or sales literature without prior written consent in |
---|
167 | each case. |
---|