annotate scripts/plot/multiplot.m @ 1557:c694fe5956e3

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