annotate scripts/plot/multiplot.m @ 2311:2b5788792cad

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