source: qesdi/geoplot/trunk/lib/geoplot/tests/drawing/draw_test_colourbar.py @ 5605

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/qesdi/geoplot/trunk/lib/geoplot/tests/drawing/draw_test_colourbar.py@5605
Revision 5605, 2.7 KB checked in by pnorton, 11 years ago (diff)

First attempt at adding the contour plot. I've tried to re-use existing components where possible. There is still a lot of duplication between the contour plot base and plot base classes.

Line 
1import os
2import pkg_resources
3import logging
4
5from geoplot.tests.drawing import getDrawingOutputDir
6from geoplot.colour_bar import ColourBar
7
8
9log = logging.getLogger(__name__)
10
11
12
13def drawColourBar( colourBarLabel=None ,colourBarPosition=None, 
14                   cmap=None, colourBarMin=None, colourBarMax=None):
15   
16   
17
18    im = geoplot.colour_bar.getColourBarImage(width,height, label='Units of Measure: mm/day')
19   
20    filename = os.path.join(outputDir, '%scolourBar.png' % (name_segment,))
21    im.save(filename, 'PNG')
22    print "Written %s" % (filename,)
23       
24
25if __name__ == '__main__':
26
27    from geoplot.log_util import SHORT_LOG_FORMAT_STRING
28    logging.basicConfig(level=logging.DEBUG, format=SHORT_LOG_FORMAT_STRING)
29   
30    outputDir = getDrawingOutputDir()
31   
32    import numpy as N
33    import geoplot.utils
34    import geoplot.log_util
35    from matplotlib.backends.backend_agg import FigureCanvasAgg
36    from matplotlib.figure import Figure
37    import matplotlib
38
39    cb = ColourBar()
40
41    filename = "draw_colour_bar.png"
42
43    xlim = 5
44    ylim = 7
45
46    x = range(0,xlim+1)
47    y = range(0,ylim+1)
48    X,Y = N.meshgrid(x,y)
49
50    X[1][1] = 2
51    X[1][2] = 3
52
53    Z=[[0]*xlim for i in range(ylim)]
54    for i in range(0 , xlim*ylim):
55        vX= i%xlim
56        vY= (i - i%xlim) / xlim
57        Z[vY][vX] = i
58
59    Z[0][1] = 0.0009
60    Z[6][1] = Z[6][2] = Z[6][3] = 30;
61    Z[6][4] = 38.545
62    Z = N.array(Z)
63
64    c255 = [( 53, 192, 157), ( 25, 162, 151), ( 28, 126, 114), ( 18,  86,  98),
65            ( 30,  45,  78), ( 15,  68, 121), ( 61,  73, 182), ( 88,  96, 220),
66            (121, 126, 255), (153, 153, 255), (156, 182, 255), (156, 209, 255),
67            (156, 237, 255), (166, 255, 246), (196, 255, 217), (224, 255, 189),
68            (249, 255, 161), (255, 236, 153), (255, 207, 153), (255, 180, 153),
69            (255, 153, 153), (255, 121, 131), (240,  88, 104), (215,  78,  91),
70            (192,  66,  83), (167,  13,  61), (131,  13,  61), ( 98,   0,  48),
71            (121,  45, 116), (151,  83, 169)]
72
73    cmap = geoplot.utils.generateDiscreteCmap(c255, "temp")
74    cb.cmap = cmap
75    cb.colourBarMin = -10
76    cb.colourBarMax = 60
77   
78    fig = Figure()
79#    axes = fig.add_axes([0.1, 0.2, 0.8, 0.7])   
80#    cbAxes = fig.add_axes([0.1,0.1,0.8,0.05])
81   
82    axes = fig.add_axes([0.1, 0.1, 0.6, 0.8])
83    cbAxes = fig.add_axes([0.8, 0.1, 0.1, 0.8])
84   
85    cb.position = 'vertical'
86   
87    sm = axes.pcolor(X,Y,Z,shading='faceted', cmap=cb.cmap,
88                     norm=cb.getNormalize(dataMin=Z.min(), dataMax=Z.max()))
89   
90    cb.draw(cbAxes, dataMin=Z.min(), dataMax=Z.max())
91   
92    canvas = FigureCanvasAgg(fig)
93   
94    path = os.path.join(outputDir,filename)
95    canvas.print_figure(path)
96   
97    print "Written:", path
Note: See TracBrowser for help on using the repository browser.