Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 237626
Collapse All | Expand All

(-)a/README.txt (-1 / +1 lines)
Lines 45-51 gnuplot then type `help', or read it online at Link Here
45
45
46
).
46
).
47
47
48
For a relatively thorough test of Gnuplot.py, type `python test.py'
48
For a relatively thorough test of Gnuplot.py, type `python test-gnuplot.py'
49
which goes systematically through most Gnuplot.py features.
49
which goes systematically through most Gnuplot.py features.
50
50
51
51
(-)a/demo.py (-1 / +1 lines)
Lines 9-15 Link Here
9
"""demo.py -- Demonstrate the Gnuplot python module.
9
"""demo.py -- Demonstrate the Gnuplot python module.
10
10
11
Run this demo by typing 'python demo.py'.  For a more complete test of
11
Run this demo by typing 'python demo.py'.  For a more complete test of
12
the Gnuplot package, see test.py.
12
the Gnuplot package, see test-gnuplot.py.
13
13
14
"""
14
"""
15
15
(-)a/doc/Gnuplot/README.html (-2 / +2 lines)
Lines 66-72 about gnuplot, for which a good source is the gnuplot help (run Link Here
66
gnuplot then type `help', or read it online at<p>    http://www.gnuplot.info/gnuplot.html</p>
66
gnuplot then type `help', or read it online at<p>    http://www.gnuplot.info/gnuplot.html</p>
67
</p>
67
</p>
68
<p>).</p>
68
<p>).</p>
69
<p>For a relatively thorough test of Gnuplot.py, type `python test.py'
69
<p>For a relatively thorough test of Gnuplot.py, type `python test-gnuplot.py'
70
which goes systematically through most Gnuplot.py features.</p>
70
which goes systematically through most Gnuplot.py features.</p>
71
<p>Installation
71
<p>Installation
72
------------</p>
72
------------</p>
Lines 225-228 Michael Haggerty Link Here
225
        
225
        
226
  </body>
226
  </body>
227
</html>
227
</html>
228
        
228
        
(-)a/doc/Gnuplot/index.html (-2 / +2 lines)
Lines 243-249 Link Here
243
            </tr>
243
            </tr>
244
            
244
            
245
            <tr>
245
            <tr>
246
              <td valign="top"><p><a href="test.html">test.py</a></p></td>
246
              <td valign="top"><p><a href="test.html">test-gnuplot.py</a></p></td>
247
              <td valign="top"></td>
247
              <td valign="top"></td>
248
            </tr>
248
            </tr>
249
            
249
            
Lines 268-271 Link Here
268
        
268
        
269
  </body>
269
  </body>
270
</html>
270
</html>
271
        
271
        
(-)a/doc/Gnuplot/test.html (-3 / +3 lines)
Lines 20-33 Link Here
20
            </th>
20
            </th>
21
            <th bgcolor="#88bbee"
21
            <th bgcolor="#88bbee"
22
                width="90%"
22
                width="90%"
23
                align="right"><font color="#000000">Gnuplot/test.py</font>
23
                align="right"><font color="#000000">Gnuplot/test-gnuplot.py</font>
24
            </th>
24
            </th>
25
        </tr>
25
        </tr>
26
        <tr>
26
        <tr>
27
        <td>
27
        <td>
28
        <!-- breadcrumbs -->
28
        <!-- breadcrumbs -->
29
<p><small>
29
<p><small>
30
/&nbsp;<a href="../Gnuplot/index.html">Gnuplot</a>&nbsp;/&nbsp;test.py&nbsp;</small></p>
30
/&nbsp;<a href="../Gnuplot/index.html">Gnuplot</a>&nbsp;/&nbsp;test-gnuplot.py&nbsp;</small></p>
31
31
32
<!-- /breadcrumbs -->
32
<!-- /breadcrumbs -->
33
<table border="0" cellpadding="5" cellspacing="0" width="100%">
33
<table border="0" cellpadding="5" cellspacing="0" width="100%">
Lines 148-151 wait ( str=None, prompt=None ) Link Here
148
        
148
        
149
  </body>
149
  </body>
150
</html>
150
</html>
151
        
151
        
(-)a/test-gnuplot.py (+336 lines)
Line 0 Link Here
1
#! /usr/bin/env python
2
3
# $Id: test.py 302 2008-01-14 22:15:19Z bmcage $
4
5
# Copyright (C) 1999-2003 Michael Haggerty <mhagger@alum.mit.edu>
6
#
7
# This file is licensed under the GNU Lesser General Public License
8
# (LGPL).  See LICENSE.txt for details.
9
10
"""test.py -- Exercise the Gnuplot.py module.
11
12
This module is not meant to be a flashy demonstration; rather it is a
13
thorough test of many combinations of Gnuplot.py features.
14
15
"""
16
17
import os, time, math, tempfile
18
import numpy
19
20
try:
21
    import Gnuplot, Gnuplot.PlotItems, Gnuplot.funcutils
22
except ImportError:
23
    # kludge in case Gnuplot hasn't been installed as a module yet:
24
    import __init__
25
    Gnuplot = __init__
26
    import PlotItems
27
    Gnuplot.PlotItems = PlotItems
28
    import funcutils
29
    Gnuplot.funcutils = funcutils
30
31
32
def wait(str=None, prompt='Press return to show results...\n'):
33
    if str is not None:
34
        print str
35
    raw_input(prompt)
36
37
38
def main():
39
    """Exercise the Gnuplot module."""
40
41
    print (
42
        'This program exercises many of the features of Gnuplot.py.  The\n'
43
        'commands that are actually sent to gnuplot are printed for your\n'
44
        'enjoyment.'
45
        )
46
47
    wait('Popping up a blank gnuplot window on your screen.')
48
    g = Gnuplot.Gnuplot(debug=1)
49
    g.clear()
50
51
    # Make two temporary files:
52
    if hasattr(tempfile, 'mkstemp'):
53
        (fd, filename1,) = tempfile.mkstemp(text=1)
54
        f = os.fdopen(fd, 'w')
55
        (fd, filename2,) = tempfile.mkstemp(text=1)
56
    else:
57
        filename1 = tempfile.mktemp()
58
        f = open(filename1, 'w')
59
        filename2 = tempfile.mktemp()
60
    try:
61
        for x in numpy.arange(100.)/5. - 10.:
62
            f.write('%s %s %s\n' % (x, math.cos(x), math.sin(x)))
63
        f.close()
64
65
        print '############### test Func ###################################'
66
        wait('Plot a gnuplot-generated function')
67
        g.plot(Gnuplot.Func('sin(x)'))
68
69
        wait('Set title and axis labels and try replot()')
70
        g.title('Title')
71
        g.xlabel('x')
72
        g.ylabel('y')
73
        g.replot()
74
75
        wait('Style linespoints')
76
        g.plot(Gnuplot.Func('sin(x)', with_='linespoints'))
77
        wait('title=None')
78
        g.plot(Gnuplot.Func('sin(x)', title=None))
79
        wait('title="Sine of x"')
80
        g.plot(Gnuplot.Func('sin(x)', title='Sine of x'))
81
        wait('axes=x2y2')
82
        g.plot(Gnuplot.Func('sin(x)', axes='x2y2', title='Sine of x'))
83
84
        print 'Change Func attributes after construction:'
85
        f = Gnuplot.Func('sin(x)')
86
        wait('Original')
87
        g.plot(f)
88
        wait('Style linespoints')
89
        f.set_option(with_='linespoints')
90
        g.plot(f)
91
        wait('title=None')
92
        f.set_option(title=None)
93
        g.plot(f)
94
        wait('title="Sine of x"')
95
        f.set_option(title='Sine of x')
96
        g.plot(f)
97
        wait('axes=x2y2')
98
        f.set_option(axes='x2y2')
99
        g.plot(f)
100
101
        print '############### test File ###################################'
102
        wait('Generate a File from a filename')
103
        g.plot(Gnuplot.File(filename1))
104
105
        wait('Style lines')
106
        g.plot(Gnuplot.File(filename1, with_='lines'))
107
108
        wait('using=1, using=(1,)')
109
        g.plot(Gnuplot.File(filename1, using=1, with_='lines'),
110
               Gnuplot.File(filename1, using=(1,), with_='points'))
111
        wait('using=(1,2), using="1:3"')
112
        g.plot(Gnuplot.File(filename1, using=(1,2)),
113
               Gnuplot.File(filename1, using='1:3'))
114
115
        wait('every=5, every=(5,)')
116
        g.plot(Gnuplot.File(filename1, every=5, with_='lines'),
117
               Gnuplot.File(filename1, every=(5,), with_='points'))
118
        wait('every=(10,None,0), every="10::5"')
119
        g.plot(Gnuplot.File(filename1, with_='lines'),
120
               Gnuplot.File(filename1, every=(10,None,0)),
121
               Gnuplot.File(filename1, every='10::5'))
122
123
        wait('title=None')
124
        g.plot(Gnuplot.File(filename1, title=None))
125
        wait('title="title"')
126
        g.plot(Gnuplot.File(filename1, title='title'))
127
128
        print 'Change File attributes after construction:'
129
        f = Gnuplot.File(filename1)
130
        wait('Original')
131
        g.plot(f)
132
        wait('Style linespoints')
133
        f.set_option(with_='linespoints')
134
        g.plot(f)
135
        wait('using=(1,3)')
136
        f.set_option(using=(1,3))
137
        g.plot(f)
138
        wait('title=None')
139
        f.set_option(title=None)
140
        g.plot(f)
141
142
        print '############### test Data ###################################'
143
        x = numpy.arange(100)/5. - 10.
144
        y1 = numpy.cos(x)
145
        y2 = numpy.sin(x)
146
        d = numpy.transpose((x,y1,y2))
147
148
        wait('Plot Data against its index')
149
        g.plot(Gnuplot.Data(y2, inline=0))
150
151
        wait('Plot Data, specified column-by-column')
152
        g.plot(Gnuplot.Data(x,y2, inline=0))
153
        wait('Same thing, saved to a file')
154
        Gnuplot.Data(x,y2, inline=0, filename=filename1)
155
        g.plot(Gnuplot.File(filename1))
156
        wait('Same thing, inline data')
157
        g.plot(Gnuplot.Data(x,y2, inline=1))
158
159
        wait('Plot Data, specified by an array')
160
        g.plot(Gnuplot.Data(d, inline=0))
161
        wait('Same thing, saved to a file')
162
        Gnuplot.Data(d, inline=0, filename=filename1)
163
        g.plot(Gnuplot.File(filename1))
164
        wait('Same thing, inline data')
165
        g.plot(Gnuplot.Data(d, inline=1))
166
        wait('with_="lp 4 4"')
167
        g.plot(Gnuplot.Data(d, with_='lp 4 4'))
168
        wait('cols=0')
169
        g.plot(Gnuplot.Data(d, cols=0))
170
        wait('cols=(0,1), cols=(0,2)')
171
        g.plot(Gnuplot.Data(d, cols=(0,1), inline=0),
172
               Gnuplot.Data(d, cols=(0,2), inline=0))
173
        wait('Same thing, saved to files')
174
        Gnuplot.Data(d, cols=(0,1), inline=0, filename=filename1)
175
        Gnuplot.Data(d, cols=(0,2), inline=0, filename=filename2)
176
        g.plot(Gnuplot.File(filename1), Gnuplot.File(filename2))
177
        wait('Same thing, inline data')
178
        g.plot(Gnuplot.Data(d, cols=(0,1), inline=1),
179
               Gnuplot.Data(d, cols=(0,2), inline=1))
180
        wait('Change title and replot()')
181
        g.title('New title')
182
        g.replot()
183
        wait('title=None')
184
        g.plot(Gnuplot.Data(d, title=None))
185
        wait('title="Cosine of x"')
186
        g.plot(Gnuplot.Data(d, title='Cosine of x'))
187
188
        print '############### test compute_Data ###########################'
189
        x = numpy.arange(100)/5. - 10.
190
191
        wait('Plot Data, computed by Gnuplot.py')
192
        g.plot(
193
            Gnuplot.funcutils.compute_Data(x, lambda x: math.cos(x), inline=0)
194
            )
195
        wait('Same thing, saved to a file')
196
        Gnuplot.funcutils.compute_Data(
197
            x, lambda x: math.cos(x), inline=0, filename=filename1
198
            )
199
        g.plot(Gnuplot.File(filename1))
200
        wait('Same thing, inline data')
201
        g.plot(Gnuplot.funcutils.compute_Data(x, math.cos, inline=1))
202
        wait('with_="lp 4 4"')
203
        g.plot(Gnuplot.funcutils.compute_Data(x, math.cos, with_='lp 4 4'))
204
205
        print '############### test hardcopy ###############################'
206
        print '******** Generating postscript file "gp_test.ps" ********'
207
        wait()
208
        g.plot(Gnuplot.Func('cos(0.5*x*x)', with_='linespoints 2 2',
209
                       title='cos(0.5*x^2)'))
210
        g.hardcopy('gp_test.ps')
211
212
        wait('Testing hardcopy options: mode="eps"')
213
        g.hardcopy('gp_test.ps', mode='eps')
214
        wait('Testing hardcopy options: mode="landscape"')
215
        g.hardcopy('gp_test.ps', mode='landscape')
216
        wait('Testing hardcopy options: mode="portrait"')
217
        g.hardcopy('gp_test.ps', mode='portrait')
218
        wait('Testing hardcopy options: eps=1')
219
        g.hardcopy('gp_test.ps', eps=1)
220
        wait('Testing hardcopy options: mode="default"')
221
        g.hardcopy('gp_test.ps', mode='default')
222
        wait('Testing hardcopy options: enhanced=1')
223
        g.hardcopy('gp_test.ps', enhanced=1)
224
        wait('Testing hardcopy options: enhanced=0')
225
        g.hardcopy('gp_test.ps', enhanced=0)
226
        wait('Testing hardcopy options: color=1')
227
        g.hardcopy('gp_test.ps', color=1)
228
        # For some reason, 
229
        #    g.hardcopy('gp_test.ps', color=0, solid=1)
230
        # doesn't work here (it doesn't activate the solid option), even
231
        # though the command sent to gnuplot looks correct.  I'll
232
        # tentatively conclude that it is a gnuplot bug. ###
233
        wait('Testing hardcopy options: color=0')
234
        g.hardcopy('gp_test.ps', color=0)
235
        wait('Testing hardcopy options: solid=1')
236
        g.hardcopy('gp_test.ps', solid=1)
237
        wait('Testing hardcopy options: duplexing="duplex"')
238
        g.hardcopy('gp_test.ps', solid=0, duplexing='duplex')
239
        wait('Testing hardcopy options: duplexing="defaultplex"')
240
        g.hardcopy('gp_test.ps', duplexing='defaultplex')
241
        wait('Testing hardcopy options: fontname="Times-Italic"')
242
        g.hardcopy('gp_test.ps', fontname='Times-Italic')
243
        wait('Testing hardcopy options: fontsize=20')
244
        g.hardcopy('gp_test.ps', fontsize=20)
245
246
        print '******** Generating svg file "gp_test.svg" ********'
247
        wait()
248
        g.plot(Gnuplot.Func('cos(0.5*x*x)', with_='linespoints 2 2',
249
                       title='cos(0.5*x^2)'))
250
        g.hardcopy('gp_test.svg', terminal='svg')
251
252
        wait('Testing hardcopy svg options: enhanced')
253
        g.hardcopy('gp_test.ps', terminal='svg', enhanced='1')
254
        
255
256
        print '############### test shortcuts ##############################'
257
        wait('plot Func and Data using shortcuts')
258
        g.plot('sin(x)', d)
259
260
        print '############### test splot ##################################'
261
        wait('a 3-d curve')
262
        g.splot(Gnuplot.Data(d, with_='linesp', inline=0))
263
        wait('Same thing, saved to a file')
264
        Gnuplot.Data(d, inline=0, filename=filename1)
265
        g.splot(Gnuplot.File(filename1, with_='linesp'))
266
        wait('Same thing, inline data')
267
        g.splot(Gnuplot.Data(d, with_='linesp', inline=1))
268
269
        print '############### test GridData and compute_GridData ##########'
270
        # set up x and y values at which the function will be tabulated:
271
        x = numpy.arange(35)/2.0
272
        y = numpy.arange(30)/10.0 - 1.5
273
        # Make a 2-d array containing a function of x and y.  First create
274
        # xm and ym which contain the x and y values in a matrix form that
275
        # can be `broadcast' into a matrix of the appropriate shape:
276
        xm = x[:,numpy.newaxis]
277
        ym = y[numpy.newaxis,:]
278
        m = (numpy.sin(xm) + 0.1*xm) - ym**2
279
        wait('a function of two variables from a GridData file')
280
        g('set parametric')
281
        g('set data style lines')
282
        g('set hidden')
283
        g('set contour base')
284
        g.xlabel('x')
285
        g.ylabel('y')
286
        g.splot(Gnuplot.GridData(m,x,y, binary=0, inline=0))
287
        wait('Same thing, saved to a file')
288
        Gnuplot.GridData(m,x,y, binary=0, inline=0, filename=filename1)
289
        g.splot(Gnuplot.File(filename1, binary=0))
290
        wait('Same thing, inline data')
291
        g.splot(Gnuplot.GridData(m,x,y, binary=0, inline=1))
292
293
        wait('The same thing using binary mode')
294
        g.splot(Gnuplot.GridData(m,x,y, binary=1))
295
        wait('Same thing, using binary mode and an intermediate file')
296
        Gnuplot.GridData(m,x,y, binary=1, filename=filename1)
297
        g.splot(Gnuplot.File(filename1, binary=1))
298
299
        wait('The same thing using compute_GridData to tabulate function')
300
        g.splot(Gnuplot.funcutils.compute_GridData(
301
            x,y, lambda x,y: math.sin(x) + 0.1*x - y**2,
302
            ))
303
        wait('Same thing, with an intermediate file')
304
        Gnuplot.funcutils.compute_GridData(
305
            x,y, lambda x,y: math.sin(x) + 0.1*x - y**2,
306
            filename=filename1)
307
        g.splot(Gnuplot.File(filename1, binary=1))
308
309
        wait('Use compute_GridData in ufunc and binary mode')
310
        g.splot(Gnuplot.funcutils.compute_GridData(
311
            x,y, lambda x,y: numpy.sin(x) + 0.1*x - y**2,
312
            ufunc=1, binary=1,
313
            ))
314
        wait('Same thing, with an intermediate file')
315
        Gnuplot.funcutils.compute_GridData(
316
            x,y, lambda x,y: numpy.sin(x) + 0.1*x - y**2,
317
            ufunc=1, binary=1,
318
            filename=filename1)
319
        g.splot(Gnuplot.File(filename1, binary=1))
320
321
        wait('And now rotate it a bit')
322
        for view in range(35,70,5):
323
            g('set view 60, %d' % view)
324
            g.replot()
325
            time.sleep(1.0)
326
327
        wait(prompt='Press return to end the test.\n')
328
    finally:
329
        os.unlink(filename1)
330
        os.unlink(filename2)
331
332
333
# when executed, just run main():
334
if __name__ == '__main__':
335
    main()
336
(-)a/test.py (-336 lines)
Lines 1-336 Link Here
1
#! /usr/bin/env python
2
3
# $Id: test.py 302 2008-01-14 22:15:19Z bmcage $
4
5
# Copyright (C) 1999-2003 Michael Haggerty <mhagger@alum.mit.edu>
6
#
7
# This file is licensed under the GNU Lesser General Public License
8
# (LGPL).  See LICENSE.txt for details.
9
10
"""test.py -- Exercise the Gnuplot.py module.
11
12
This module is not meant to be a flashy demonstration; rather it is a
13
thorough test of many combinations of Gnuplot.py features.
14
15
"""
16
17
import os, time, math, tempfile
18
import numpy
19
20
try:
21
    import Gnuplot, Gnuplot.PlotItems, Gnuplot.funcutils
22
except ImportError:
23
    # kludge in case Gnuplot hasn't been installed as a module yet:
24
    import __init__
25
    Gnuplot = __init__
26
    import PlotItems
27
    Gnuplot.PlotItems = PlotItems
28
    import funcutils
29
    Gnuplot.funcutils = funcutils
30
31
32
def wait(str=None, prompt='Press return to show results...\n'):
33
    if str is not None:
34
        print str
35
    raw_input(prompt)
36
37
38
def main():
39
    """Exercise the Gnuplot module."""
40
41
    print (
42
        'This program exercises many of the features of Gnuplot.py.  The\n'
43
        'commands that are actually sent to gnuplot are printed for your\n'
44
        'enjoyment.'
45
        )
46
47
    wait('Popping up a blank gnuplot window on your screen.')
48
    g = Gnuplot.Gnuplot(debug=1)
49
    g.clear()
50
51
    # Make two temporary files:
52
    if hasattr(tempfile, 'mkstemp'):
53
        (fd, filename1,) = tempfile.mkstemp(text=1)
54
        f = os.fdopen(fd, 'w')
55
        (fd, filename2,) = tempfile.mkstemp(text=1)
56
    else:
57
        filename1 = tempfile.mktemp()
58
        f = open(filename1, 'w')
59
        filename2 = tempfile.mktemp()
60
    try:
61
        for x in numpy.arange(100.)/5. - 10.:
62
            f.write('%s %s %s\n' % (x, math.cos(x), math.sin(x)))
63
        f.close()
64
65
        print '############### test Func ###################################'
66
        wait('Plot a gnuplot-generated function')
67
        g.plot(Gnuplot.Func('sin(x)'))
68
69
        wait('Set title and axis labels and try replot()')
70
        g.title('Title')
71
        g.xlabel('x')
72
        g.ylabel('y')
73
        g.replot()
74
75
        wait('Style linespoints')
76
        g.plot(Gnuplot.Func('sin(x)', with_='linespoints'))
77
        wait('title=None')
78
        g.plot(Gnuplot.Func('sin(x)', title=None))
79
        wait('title="Sine of x"')
80
        g.plot(Gnuplot.Func('sin(x)', title='Sine of x'))
81
        wait('axes=x2y2')
82
        g.plot(Gnuplot.Func('sin(x)', axes='x2y2', title='Sine of x'))
83
84
        print 'Change Func attributes after construction:'
85
        f = Gnuplot.Func('sin(x)')
86
        wait('Original')
87
        g.plot(f)
88
        wait('Style linespoints')
89
        f.set_option(with_='linespoints')
90
        g.plot(f)
91
        wait('title=None')
92
        f.set_option(title=None)
93
        g.plot(f)
94
        wait('title="Sine of x"')
95
        f.set_option(title='Sine of x')
96
        g.plot(f)
97
        wait('axes=x2y2')
98
        f.set_option(axes='x2y2')
99
        g.plot(f)
100
101
        print '############### test File ###################################'
102
        wait('Generate a File from a filename')
103
        g.plot(Gnuplot.File(filename1))
104
105
        wait('Style lines')
106
        g.plot(Gnuplot.File(filename1, with_='lines'))
107
108
        wait('using=1, using=(1,)')
109
        g.plot(Gnuplot.File(filename1, using=1, with_='lines'),
110
               Gnuplot.File(filename1, using=(1,), with_='points'))
111
        wait('using=(1,2), using="1:3"')
112
        g.plot(Gnuplot.File(filename1, using=(1,2)),
113
               Gnuplot.File(filename1, using='1:3'))
114
115
        wait('every=5, every=(5,)')
116
        g.plot(Gnuplot.File(filename1, every=5, with_='lines'),
117
               Gnuplot.File(filename1, every=(5,), with_='points'))
118
        wait('every=(10,None,0), every="10::5"')
119
        g.plot(Gnuplot.File(filename1, with_='lines'),
120
               Gnuplot.File(filename1, every=(10,None,0)),
121
               Gnuplot.File(filename1, every='10::5'))
122
123
        wait('title=None')
124
        g.plot(Gnuplot.File(filename1, title=None))
125
        wait('title="title"')
126
        g.plot(Gnuplot.File(filename1, title='title'))
127
128
        print 'Change File attributes after construction:'
129
        f = Gnuplot.File(filename1)
130
        wait('Original')
131
        g.plot(f)
132
        wait('Style linespoints')
133
        f.set_option(with_='linespoints')
134
        g.plot(f)
135
        wait('using=(1,3)')
136
        f.set_option(using=(1,3))
137
        g.plot(f)
138
        wait('title=None')
139
        f.set_option(title=None)
140
        g.plot(f)
141
142
        print '############### test Data ###################################'
143
        x = numpy.arange(100)/5. - 10.
144
        y1 = numpy.cos(x)
145
        y2 = numpy.sin(x)
146
        d = numpy.transpose((x,y1,y2))
147
148
        wait('Plot Data against its index')
149
        g.plot(Gnuplot.Data(y2, inline=0))
150
151
        wait('Plot Data, specified column-by-column')
152
        g.plot(Gnuplot.Data(x,y2, inline=0))
153
        wait('Same thing, saved to a file')
154
        Gnuplot.Data(x,y2, inline=0, filename=filename1)
155
        g.plot(Gnuplot.File(filename1))
156
        wait('Same thing, inline data')
157
        g.plot(Gnuplot.Data(x,y2, inline=1))
158
159
        wait('Plot Data, specified by an array')
160
        g.plot(Gnuplot.Data(d, inline=0))
161
        wait('Same thing, saved to a file')
162
        Gnuplot.Data(d, inline=0, filename=filename1)
163
        g.plot(Gnuplot.File(filename1))
164
        wait('Same thing, inline data')
165
        g.plot(Gnuplot.Data(d, inline=1))
166
        wait('with_="lp 4 4"')
167
        g.plot(Gnuplot.Data(d, with_='lp 4 4'))
168
        wait('cols=0')
169
        g.plot(Gnuplot.Data(d, cols=0))
170
        wait('cols=(0,1), cols=(0,2)')
171
        g.plot(Gnuplot.Data(d, cols=(0,1), inline=0),
172
               Gnuplot.Data(d, cols=(0,2), inline=0))
173
        wait('Same thing, saved to files')
174
        Gnuplot.Data(d, cols=(0,1), inline=0, filename=filename1)
175
        Gnuplot.Data(d, cols=(0,2), inline=0, filename=filename2)
176
        g.plot(Gnuplot.File(filename1), Gnuplot.File(filename2))
177
        wait('Same thing, inline data')
178
        g.plot(Gnuplot.Data(d, cols=(0,1), inline=1),
179
               Gnuplot.Data(d, cols=(0,2), inline=1))
180
        wait('Change title and replot()')
181
        g.title('New title')
182
        g.replot()
183
        wait('title=None')
184
        g.plot(Gnuplot.Data(d, title=None))
185
        wait('title="Cosine of x"')
186
        g.plot(Gnuplot.Data(d, title='Cosine of x'))
187
188
        print '############### test compute_Data ###########################'
189
        x = numpy.arange(100)/5. - 10.
190
191
        wait('Plot Data, computed by Gnuplot.py')
192
        g.plot(
193
            Gnuplot.funcutils.compute_Data(x, lambda x: math.cos(x), inline=0)
194
            )
195
        wait('Same thing, saved to a file')
196
        Gnuplot.funcutils.compute_Data(
197
            x, lambda x: math.cos(x), inline=0, filename=filename1
198
            )
199
        g.plot(Gnuplot.File(filename1))
200
        wait('Same thing, inline data')
201
        g.plot(Gnuplot.funcutils.compute_Data(x, math.cos, inline=1))
202
        wait('with_="lp 4 4"')
203
        g.plot(Gnuplot.funcutils.compute_Data(x, math.cos, with_='lp 4 4'))
204
205
        print '############### test hardcopy ###############################'
206
        print '******** Generating postscript file "gp_test.ps" ********'
207
        wait()
208
        g.plot(Gnuplot.Func('cos(0.5*x*x)', with_='linespoints 2 2',
209
                       title='cos(0.5*x^2)'))
210
        g.hardcopy('gp_test.ps')
211
212
        wait('Testing hardcopy options: mode="eps"')
213
        g.hardcopy('gp_test.ps', mode='eps')
214
        wait('Testing hardcopy options: mode="landscape"')
215
        g.hardcopy('gp_test.ps', mode='landscape')
216
        wait('Testing hardcopy options: mode="portrait"')
217
        g.hardcopy('gp_test.ps', mode='portrait')
218
        wait('Testing hardcopy options: eps=1')
219
        g.hardcopy('gp_test.ps', eps=1)
220
        wait('Testing hardcopy options: mode="default"')
221
        g.hardcopy('gp_test.ps', mode='default')
222
        wait('Testing hardcopy options: enhanced=1')
223
        g.hardcopy('gp_test.ps', enhanced=1)
224
        wait('Testing hardcopy options: enhanced=0')
225
        g.hardcopy('gp_test.ps', enhanced=0)
226
        wait('Testing hardcopy options: color=1')
227
        g.hardcopy('gp_test.ps', color=1)
228
        # For some reason, 
229
        #    g.hardcopy('gp_test.ps', color=0, solid=1)
230
        # doesn't work here (it doesn't activate the solid option), even
231
        # though the command sent to gnuplot looks correct.  I'll
232
        # tentatively conclude that it is a gnuplot bug. ###
233
        wait('Testing hardcopy options: color=0')
234
        g.hardcopy('gp_test.ps', color=0)
235
        wait('Testing hardcopy options: solid=1')
236
        g.hardcopy('gp_test.ps', solid=1)
237
        wait('Testing hardcopy options: duplexing="duplex"')
238
        g.hardcopy('gp_test.ps', solid=0, duplexing='duplex')
239
        wait('Testing hardcopy options: duplexing="defaultplex"')
240
        g.hardcopy('gp_test.ps', duplexing='defaultplex')
241
        wait('Testing hardcopy options: fontname="Times-Italic"')
242
        g.hardcopy('gp_test.ps', fontname='Times-Italic')
243
        wait('Testing hardcopy options: fontsize=20')
244
        g.hardcopy('gp_test.ps', fontsize=20)
245
246
        print '******** Generating svg file "gp_test.svg" ********'
247
        wait()
248
        g.plot(Gnuplot.Func('cos(0.5*x*x)', with_='linespoints 2 2',
249
                       title='cos(0.5*x^2)'))
250
        g.hardcopy('gp_test.svg', terminal='svg')
251
252
        wait('Testing hardcopy svg options: enhanced')
253
        g.hardcopy('gp_test.ps', terminal='svg', enhanced='1')
254
        
255
256
        print '############### test shortcuts ##############################'
257
        wait('plot Func and Data using shortcuts')
258
        g.plot('sin(x)', d)
259
260
        print '############### test splot ##################################'
261
        wait('a 3-d curve')
262
        g.splot(Gnuplot.Data(d, with_='linesp', inline=0))
263
        wait('Same thing, saved to a file')
264
        Gnuplot.Data(d, inline=0, filename=filename1)
265
        g.splot(Gnuplot.File(filename1, with_='linesp'))
266
        wait('Same thing, inline data')
267
        g.splot(Gnuplot.Data(d, with_='linesp', inline=1))
268
269
        print '############### test GridData and compute_GridData ##########'
270
        # set up x and y values at which the function will be tabulated:
271
        x = numpy.arange(35)/2.0
272
        y = numpy.arange(30)/10.0 - 1.5
273
        # Make a 2-d array containing a function of x and y.  First create
274
        # xm and ym which contain the x and y values in a matrix form that
275
        # can be `broadcast' into a matrix of the appropriate shape:
276
        xm = x[:,numpy.newaxis]
277
        ym = y[numpy.newaxis,:]
278
        m = (numpy.sin(xm) + 0.1*xm) - ym**2
279
        wait('a function of two variables from a GridData file')
280
        g('set parametric')
281
        g('set data style lines')
282
        g('set hidden')
283
        g('set contour base')
284
        g.xlabel('x')
285
        g.ylabel('y')
286
        g.splot(Gnuplot.GridData(m,x,y, binary=0, inline=0))
287
        wait('Same thing, saved to a file')
288
        Gnuplot.GridData(m,x,y, binary=0, inline=0, filename=filename1)
289
        g.splot(Gnuplot.File(filename1, binary=0))
290
        wait('Same thing, inline data')
291
        g.splot(Gnuplot.GridData(m,x,y, binary=0, inline=1))
292
293
        wait('The same thing using binary mode')
294
        g.splot(Gnuplot.GridData(m,x,y, binary=1))
295
        wait('Same thing, using binary mode and an intermediate file')
296
        Gnuplot.GridData(m,x,y, binary=1, filename=filename1)
297
        g.splot(Gnuplot.File(filename1, binary=1))
298
299
        wait('The same thing using compute_GridData to tabulate function')
300
        g.splot(Gnuplot.funcutils.compute_GridData(
301
            x,y, lambda x,y: math.sin(x) + 0.1*x - y**2,
302
            ))
303
        wait('Same thing, with an intermediate file')
304
        Gnuplot.funcutils.compute_GridData(
305
            x,y, lambda x,y: math.sin(x) + 0.1*x - y**2,
306
            filename=filename1)
307
        g.splot(Gnuplot.File(filename1, binary=1))
308
309
        wait('Use compute_GridData in ufunc and binary mode')
310
        g.splot(Gnuplot.funcutils.compute_GridData(
311
            x,y, lambda x,y: numpy.sin(x) + 0.1*x - y**2,
312
            ufunc=1, binary=1,
313
            ))
314
        wait('Same thing, with an intermediate file')
315
        Gnuplot.funcutils.compute_GridData(
316
            x,y, lambda x,y: numpy.sin(x) + 0.1*x - y**2,
317
            ufunc=1, binary=1,
318
            filename=filename1)
319
        g.splot(Gnuplot.File(filename1, binary=1))
320
321
        wait('And now rotate it a bit')
322
        for view in range(35,70,5):
323
            g('set view 60, %d' % view)
324
            g.replot()
325
            time.sleep(1.0)
326
327
        wait(prompt='Press return to end the test.\n')
328
    finally:
329
        os.unlink(filename1)
330
        os.unlink(filename2)
331
332
333
# when executed, just run main():
334
if __name__ == '__main__':
335
    main()
336

Return to bug 237626