4646import numpy as np
4747import matplotlib .pyplot as plt
4848import matplotlib .colors as colors
49- from matplotlib .mlab import bivariate_normal
5049
5150N = 100
5251X , Y = np .mgrid [- 3 :3 :complex (0 , N ), - 2 :2 :complex (0 , N )]
5352
5453# A low hump with a spike coming out of the top right. Needs to have
5554# z/colour axis on a log scale so we see both hump and spike. linear
5655# scale only shows the spike.
57- Z1 = bivariate_normal (X , Y , 0.1 , 0.2 , 1.0 , 1.0 ) + \
58- 0.1 * bivariate_normal (X , Y , 1.0 , 1.0 , 0.0 , 0.0 )
56+ Z1 = np .exp (- (X )** 2 - (Y )** 2 )
57+ Z2 = np .exp (- (X * 10 )** 2 - (Y * 10 )** 2 )
58+ Z = Z1 + 50 * Z2
5959
6060fig , ax = plt .subplots (2 , 1 )
6161
62- pcm = ax [0 ].pcolor (X , Y , Z1 ,
63- norm = colors .LogNorm (vmin = Z1 .min (), vmax = Z1 .max ()),
62+ pcm = ax [0 ].pcolor (X , Y , Z ,
63+ norm = colors .LogNorm (vmin = Z .min (), vmax = Z .max ()),
6464 cmap = 'PuBu_r' )
6565fig .colorbar (pcm , ax = ax [0 ], extend = 'max' )
6666
67- pcm = ax [1 ].pcolor (X , Y , Z1 , cmap = 'PuBu_r' )
67+ pcm = ax [1 ].pcolor (X , Y , Z , cmap = 'PuBu_r' )
6868fig .colorbar (pcm , ax = ax [1 ], extend = 'max' )
6969fig .show ()
7070
8989
9090N = 100
9191X , Y = np .mgrid [- 3 :3 :complex (0 , N ), - 2 :2 :complex (0 , N )]
92- Z1 = ( bivariate_normal ( X , Y , 1. , 1. , 1.0 , 1.0 )) ** 2 \
93- - 0.4 * ( bivariate_normal ( X , Y , 1.0 , 1.0 , - 1.0 , 0.0 )) ** 2
94- Z1 = Z1 / 0.03
92+ Z1 = np . exp ( - X ** 2 - Y ** 2 )
93+ Z2 = np . exp ( - ( X - 1 ) ** 2 - ( Y - 1 ) ** 2 )
94+ Z = ( Z1 - Z2 ) * 2
9595
9696fig , ax = plt .subplots (2 , 1 )
9797
98- pcm = ax [0 ].pcolormesh (X , Y , Z1 ,
98+ pcm = ax [0 ].pcolormesh (X , Y , Z ,
9999 norm = colors .SymLogNorm (linthresh = 0.03 , linscale = 0.03 ,
100100 vmin = - 1.0 , vmax = 1.0 ),
101101 cmap = 'RdBu_r' )
102102fig .colorbar (pcm , ax = ax [0 ], extend = 'both' )
103103
104- pcm = ax [1 ].pcolormesh (X , Y , Z1 , cmap = 'RdBu_r' , vmin = - np .max (Z1 ))
104+ pcm = ax [1 ].pcolormesh (X , Y , Z , cmap = 'RdBu_r' , vmin = - np .max (Z ))
105105fig .colorbar (pcm , ax = ax [1 ], extend = 'both' )
106106fig .show ()
107107
129129
130130fig , ax = plt .subplots (2 , 1 )
131131
132- pcm = ax [0 ].pcolormesh (X , Y , Z1 , norm = colors .PowerNorm (gamma = 1. / 2. ),
132+ pcm = ax [0 ].pcolormesh (X , Y , Z1 , norm = colors .PowerNorm (gamma = 0.5 ),
133133 cmap = 'PuBu_r' )
134134fig .colorbar (pcm , ax = ax [0 ], extend = 'max' )
135135
162162
163163N = 100
164164X , Y = np .mgrid [- 3 :3 :complex (0 , N ), - 2 :2 :complex (0 , N )]
165- Z1 = ( bivariate_normal ( X , Y , 1. , 1. , 1.0 , 1.0 )) ** 2 \
166- - 0.4 * ( bivariate_normal ( X , Y , 1.0 , 1.0 , - 1.0 , 0.0 )) ** 2
167- Z1 = Z1 / 0.03
165+ Z1 = np . exp ( - X ** 2 - Y ** 2 )
166+ Z2 = np . exp ( - ( X - 1 ) ** 2 - ( Y - 1 ) ** 2 )
167+ Z = ( Z1 - Z2 ) * 2
168168
169169fig , ax = plt .subplots (3 , 1 , figsize = (8 , 8 ))
170170ax = ax .flatten ()
171171# even bounds gives a contour-like effect
172172bounds = np .linspace (- 1 , 1 , 10 )
173173norm = colors .BoundaryNorm (boundaries = bounds , ncolors = 256 )
174- pcm = ax [0 ].pcolormesh (X , Y , Z1 ,
174+ pcm = ax [0 ].pcolormesh (X , Y , Z ,
175175 norm = norm ,
176176 cmap = 'RdBu_r' )
177177fig .colorbar (pcm , ax = ax [0 ], extend = 'both' , orientation = 'vertical' )
178178
179179# uneven bounds changes the colormapping:
180180bounds = np .array ([- 0.25 , - 0.125 , 0 , 0.5 , 1 ])
181181norm = colors .BoundaryNorm (boundaries = bounds , ncolors = 256 )
182- pcm = ax [1 ].pcolormesh (X , Y , Z1 , norm = norm , cmap = 'RdBu_r' )
182+ pcm = ax [1 ].pcolormesh (X , Y , Z , norm = norm , cmap = 'RdBu_r' )
183183fig .colorbar (pcm , ax = ax [1 ], extend = 'both' , orientation = 'vertical' )
184184
185- pcm = ax [2 ].pcolormesh (X , Y , Z1 , cmap = 'RdBu_r' , vmin = - np .max (Z1 ))
185+ pcm = ax [2 ].pcolormesh (X , Y , Z , cmap = 'RdBu_r' , vmin = - np .max (Z ))
186186fig .colorbar (pcm , ax = ax [2 ], extend = 'both' , orientation = 'vertical' )
187187fig .show ()
188188
207207
208208N = 100
209209X , Y = np .mgrid [- 3 :3 :complex (0 , N ), - 2 :2 :complex (0 , N )]
210- Z1 = ( bivariate_normal ( X , Y , 1. , 1. , 1.0 , 1.0 )) ** 2 \
211- - 0.4 * ( bivariate_normal ( X , Y , 1.0 , 1.0 , - 1.0 , 0.0 )) ** 2
212- Z1 = Z1 / 0.03
210+ Z1 = np . exp ( - X ** 2 - Y ** 2 )
211+ Z2 = np . exp ( - ( X - 1 ) ** 2 - ( Y - 1 ) ** 2 )
212+ Z = ( Z1 - Z2 ) * 2
213213
214214
215215class MidpointNormalize (colors .Normalize ):
@@ -223,13 +223,14 @@ def __call__(self, value, clip=None):
223223 x , y = [self .vmin , self .midpoint , self .vmax ], [0 , 0.5 , 1 ]
224224 return np .ma .masked_array (np .interp (value , x , y ))
225225
226+
226227fig , ax = plt .subplots (2 , 1 )
227228
228- pcm = ax [0 ].pcolormesh (X , Y , Z1 ,
229+ pcm = ax [0 ].pcolormesh (X , Y , Z ,
229230 norm = MidpointNormalize (midpoint = 0. ),
230231 cmap = 'RdBu_r' )
231232fig .colorbar (pcm , ax = ax [0 ], extend = 'both' )
232233
233- pcm = ax [1 ].pcolormesh (X , Y , Z1 , cmap = 'RdBu_r' , vmin = - np .max (Z1 ))
234+ pcm = ax [1 ].pcolormesh (X , Y , Z , cmap = 'RdBu_r' , vmin = - np .max (Z ))
234235fig .colorbar (pcm , ax = ax [1 ], extend = 'both' )
235236fig .show ()
0 commit comments