Print the number of steps read in by plot_image.py (for sanity checks).
[parallel_computing.git] / src / plot_image / plot_image.py
index 8c0a33806af9147b32fc0469a9cb4e57f7420266..11a3a9787b4a8b0aadf2b6718570a28b951008ff 100755 (executable)
@@ -174,6 +174,17 @@ def plot(X, Y, Z, full=False, title=None, contours=None, interpolation=None,
     return fig
 
 
+def get_possible_interpolations():
+    try:  # Matplotlib v1.0.1
+        return sorted(matplotlib.image.AxesImage._interpd.keys())
+    except AttributeError:
+        try:  # Matplotlib v0.91.2
+            return sorted(matplotlib.image.AxesImage(None)._interpd.keys())
+        except AttributeError:
+            # give up ;)
+            pass
+    return ['nearest']
+
 def test():
     import doctest
     results = doctest.testmod()
@@ -193,8 +204,8 @@ def main(argv=None):
     Title:             Some like it hot
     Image size:        5 2
     False color
-    X range:           0 4
-    X range:           0 1
+    X range:           0 4 (6 steps)
+    Y range:           0 1 (3 steps)
     Z range:           0.0 9.0
     >>> img = o.read()
     >>> img.startswith('\\x89PNG')
@@ -231,7 +242,7 @@ def main(argv=None):
                  help='Title (%default)')
     p.add_option('--test', dest='test', action='store_true',
                  help='Run internal tests and exit.')
-    interpolations = sorted(matplotlib.image.AxesImage._interpd.keys())
+    interpolations = get_possible_interpolations()
     p.add_option('--interpolation', dest='interpolation', default='nearest',
                  help=('Interpolation scheme (for false color images) from %s '
                        '(%%default)') % ', '.join(interpolations))
@@ -275,8 +286,10 @@ def main(argv=None):
 
     Z_min = numpy.min(Z.flat)
     Z_max = numpy.max(Z.flat)
-    print 'X range:          ', X[0,0], X[0,-2]
-    print 'X range:          ', Y[0,0], Y[-2,0]
+    print 'X range:           {} {} ({} steps)'.format(
+        X[0,0], X[0,-2], X.shape[1])
+    print 'Y range:           {} {} ({} steps)'.format(
+        Y[0,0], Y[-2,0], Y.shape[0])
     print 'Z range:          ', Z_min, Z_max
 
     fig = plot(X, Y, Z, full=options.full, title=options.title,