annotate scripts/plot/multiplot.m @ 2313:5ca126254d15

[project @ 1996-07-11 21:25:22 by jwe]
author jwe
date Thu, 11 Jul 1996 21:25:22 +0000
parents 204cc7db6f4a
children b5568c31ee2c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2313
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2312
diff changeset
1 ## Copyright (C) 1996 John W. Eaton
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2312
diff changeset
2 ##
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2312
diff changeset
3 ## This file is part of Octave.
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2312
diff changeset
4 ##
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2312
diff changeset
5 ## Octave is free software; you can redistribute it and/or modify it
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2312
diff changeset
6 ## under the terms of the GNU General Public License as published by
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2312
diff changeset
7 ## the Free Software Foundation; either version 2, or (at your option)
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2312
diff changeset
8 ## any later version.
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2312
diff changeset
9 ##
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2312
diff changeset
10 ## Octave is distributed in the hope that it will be useful, but
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2312
diff changeset
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2312
diff changeset
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2312
diff changeset
13 ## General Public License for more details.
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2312
diff changeset
14 ##
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2312
diff changeset
15 ## You should have received a copy of the GNU General Public License
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2312
diff changeset
16 ## along with Octave; see the file COPYING. If not, write to the Free
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2312
diff changeset
17 ## Software Foundation, 59 Temple Place - Suite 330, Boston, MA
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2312
diff changeset
18 ## 02111-1307, USA.
1540
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
19
2311
2b5788792cad [project @ 1996-07-11 20:18:38 by jwe]
jwe
parents: 2303
diff changeset
20 ## usage: multiplot (xn, yn)
2b5788792cad [project @ 1996-07-11 20:18:38 by jwe]
jwe
parents: 2303
diff changeset
21 ##
2b5788792cad [project @ 1996-07-11 20:18:38 by jwe]
jwe
parents: 2303
diff changeset
22 ## Sets and resets multiplot mode
2b5788792cad [project @ 1996-07-11 20:18:38 by jwe]
jwe
parents: 2303
diff changeset
23 ##
2b5788792cad [project @ 1996-07-11 20:18:38 by jwe]
jwe
parents: 2303
diff changeset
24 ## If multiplot(0,0) then it will close multiplot mode and and if
2b5788792cad [project @ 1996-07-11 20:18:38 by jwe]
jwe
parents: 2303
diff changeset
25 ## arguments are non-zero, then it will set up multiplot mode with
2b5788792cad [project @ 1996-07-11 20:18:38 by jwe]
jwe
parents: 2303
diff changeset
26 ## xn,yn subplots along x and y axes.
2b5788792cad [project @ 1996-07-11 20:18:38 by jwe]
jwe
parents: 2303
diff changeset
27 ##
2b5788792cad [project @ 1996-07-11 20:18:38 by jwe]
jwe
parents: 2303
diff changeset
28 ## NOTE: this will work only with gnuplot installed with
2b5788792cad [project @ 1996-07-11 20:18:38 by jwe]
jwe
parents: 2303
diff changeset
29 ## multiplot patch
1540
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
30
2312
204cc7db6f4a [project @ 1996-07-11 21:20:36 by jwe]
jwe
parents: 2311
diff changeset
31 ## Author: Vinayak Dutt, Dutt.Vinayak@mayo.EDU
204cc7db6f4a [project @ 1996-07-11 21:20:36 by jwe]
jwe
parents: 2311
diff changeset
32 ## Created: 3 July 95
204cc7db6f4a [project @ 1996-07-11 21:20:36 by jwe]
jwe
parents: 2311
diff changeset
33 ## Adapted-By: jwe
1540
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
34
2312
204cc7db6f4a [project @ 1996-07-11 21:20:36 by jwe]
jwe
parents: 2311
diff changeset
35 function multiplot (xn, yn)
1540
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
36
2296
5f6c19054139 [project @ 1996-06-14 06:41:57 by jwe]
jwe
parents: 1887
diff changeset
37 if (! gnuplot_has_multiplot)
5f6c19054139 [project @ 1996-06-14 06:41:57 by jwe]
jwe
parents: 1887
diff changeset
38 error ("multiplot: gnuplot does not appear to support this feature");
5f6c19054139 [project @ 1996-06-14 06:41:57 by jwe]
jwe
parents: 1887
diff changeset
39 endif
5f6c19054139 [project @ 1996-06-14 06:41:57 by jwe]
jwe
parents: 1887
diff changeset
40
2303
5cffc4b8de57 [project @ 1996-06-24 09:15:24 by jwe]
jwe
parents: 2296
diff changeset
41 ## global variables to keep track of multiplot options
1540
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
42
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
43 global multiplot_mode
1541
47bd45a30dda [project @ 1995-10-06 03:40:11 by jwe]
jwe
parents: 1540
diff changeset
44 global multiplot_xsize multiplot_ysize
47bd45a30dda [project @ 1995-10-06 03:40:11 by jwe]
jwe
parents: 1540
diff changeset
45 global multiplot_xn multiplot_yn
47bd45a30dda [project @ 1995-10-06 03:40:11 by jwe]
jwe
parents: 1540
diff changeset
46 global multiplot_xi multiplot_yi
1540
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
47
2303
5cffc4b8de57 [project @ 1996-06-24 09:15:24 by jwe]
jwe
parents: 2296
diff changeset
48 ## This is a real kludge. We gnuplot should be made so that replot can
5cffc4b8de57 [project @ 1996-06-24 09:15:24 by jwe]
jwe
parents: 2296
diff changeset
49 ## be executed while doing multiple plots...
1540
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
50
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
51 global multiplot_save_auto_replot = automatic_replot
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
52
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
53 if (nargin != 2)
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
54 usage ("multiplot (xn, yn)");
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
55 endif
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
56
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
57 if (! (is_scalar (xn) && is_scalar (yn)))
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
58 error ("multiplot: xn and yn have to be scalars");
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
59 endif
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
60
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
61 if ((isstr (automatic_replot) && strcmp (automatic_replot,"true"))
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
62 || automatic_replot)
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
63 warning ("turning off automatic replot for multiplot mode");
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
64 multiplot_save_auto_replot = automatic_replot;
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
65 automatic_replot = 0;
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
66 endif
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
67
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
68 xn = round (xn);
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
69 yn = round (yn);
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
70
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
71 if (xn == 0 && yn == 0)
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
72
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
73 set nomultiplot;
1557
c694fe5956e3 [project @ 1995-10-12 00:32:20 by jwe]
jwe
parents: 1541
diff changeset
74 set size 1, 1;
c694fe5956e3 [project @ 1995-10-12 00:32:20 by jwe]
jwe
parents: 1541
diff changeset
75 set origin 0, 0;
1540
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
76
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
77 multiplot_mode = 0;
1541
47bd45a30dda [project @ 1995-10-06 03:40:11 by jwe]
jwe
parents: 1540
diff changeset
78 multiplot_xsize = 1;
47bd45a30dda [project @ 1995-10-06 03:40:11 by jwe]
jwe
parents: 1540
diff changeset
79 multiplot_ysize = 1;
47bd45a30dda [project @ 1995-10-06 03:40:11 by jwe]
jwe
parents: 1540
diff changeset
80 multiplot_xn = 1;
47bd45a30dda [project @ 1995-10-06 03:40:11 by jwe]
jwe
parents: 1540
diff changeset
81 multiplot_yn = 1;
47bd45a30dda [project @ 1995-10-06 03:40:11 by jwe]
jwe
parents: 1540
diff changeset
82 multiplot_xi = 1;
47bd45a30dda [project @ 1995-10-06 03:40:11 by jwe]
jwe
parents: 1540
diff changeset
83 multiplot_yi = 1;
1540
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
84
2303
5cffc4b8de57 [project @ 1996-06-24 09:15:24 by jwe]
jwe
parents: 2296
diff changeset
85 ## Someone may have reset it betweeen calls...
1540
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
86
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
87 if (! isstr (automatic_replot) && ! automatic_replot)
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
88 automatic_replot = multiplot_save_auto_replot;
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
89 endif
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
90
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
91 return;
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
92
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
93 else
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
94
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
95 if (xn < 1 || yn < 1)
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
96 error ("multiplot: xn and yn have to be positive integers");
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
97 endif
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
98
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
99 set multiplot;
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
100
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
101 xsize = 1.0 ./ xn;
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
102 ysize = 1.0 ./ yn;
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
103
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
104 eval (sprintf ("set size %g, %g", xsize, ysize));
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
105
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
106 xo = 0.0;
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
107 yo = (yn - 1.0)*ysize;
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
108
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
109 eval (sprintf ("set origin %g, %g", xo, yo));
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
110
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
111 multiplot_mode = 1;
1541
47bd45a30dda [project @ 1995-10-06 03:40:11 by jwe]
jwe
parents: 1540
diff changeset
112 multiplot_xsize = xsize;
47bd45a30dda [project @ 1995-10-06 03:40:11 by jwe]
jwe
parents: 1540
diff changeset
113 multiplot_ysize = ysize;
47bd45a30dda [project @ 1995-10-06 03:40:11 by jwe]
jwe
parents: 1540
diff changeset
114 multiplot_xn = xn;
47bd45a30dda [project @ 1995-10-06 03:40:11 by jwe]
jwe
parents: 1540
diff changeset
115 multiplot_yn = yn;
47bd45a30dda [project @ 1995-10-06 03:40:11 by jwe]
jwe
parents: 1540
diff changeset
116 multiplot_xi = 1;
47bd45a30dda [project @ 1995-10-06 03:40:11 by jwe]
jwe
parents: 1540
diff changeset
117 multiplot_yi = 1;
1540
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
118
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
119 endif
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
120
749b8b19733f [project @ 1995-10-06 03:10:34 by jwe]
jwe
parents:
diff changeset
121 endfunction