Chao YUE | 10 Nov 16:07 2012
Picon

how to reverse the colorbar and its label at the same time?

Dear all,

Is there a way to reverse the colorbar label, the default is small value at the bottom and big value at the top, yet I would like the big value at the bottom and small value at the top.

all code in pylab mode.

import numpy as np
import matplotlib as mat

a = np.arange(100).reshape(10,10)
contourf(a,levels=np.arange(0,101,10))
colorbar()

in the above figure, colorbar label shows 0 at the bottom and 100 at the top.
Yet I want the 0 at the top and the 100 at the bottom, with the same sequence of colors in the colorbar.

One way is to reverse the cmap, and then reverse the colorbar labels at the same time:
a = np.arange(100).reshape(10,10)
contourf(a,levels=np.arange(0,101,10),cmap=mat.cm.jet_r)
cbar = colorbar()
cbar.set_ticks(np.arange(0,101,10))
cbar.set_ticklabels(np.arange(100,-1,-10))

But the problem is, sometimes I used the customized colormap, and to increase the contrast, I do linear transformation for the data before I plot them.
The the data that are really used for plotting are not the same. But in the colorbar label, I used the values before transformation. Is this complicated case,
reverse the customized colormap could not solve the problem (unlike in the simple example above.) Does anyone have the same experience?

Thanks et cheers,

Chao

--

***********************************************************************************
Chao YUE
Laboratoire des Sciences du Climat et de l'Environnement (LSCE-IPSL)
UMR 1572 CEA-CNRS-UVSQ
Batiment 712 - Pe 119
91191 GIF Sur YVETTE Cedex
Tel: (33) 01 69 08 29 02; Fax:01.69.08.77.16
************************************************************************************

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_nov
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@...
https://lists.sourceforge.net/lists/listinfo/matplotlib-users
Paul Hobson | 10 Nov 16:41 2012
Picon

Re: how to reverse the colorbar and its label at the same time?

On Sat, Nov 10, 2012 at 7:07 AM, Chao YUE <chaoyuejoy@...> wrote:
>
> Dear all,
>
> Is there a way to reverse the colorbar label, the default is small value at the bottom and big value at the
top, yet I would like the big value at the bottom and small value at the top.
>
> all code in pylab mode.
>
> import numpy as np
> import matplotlib as mat
>
> a = np.arange(100).reshape(10,10)
> contourf(a,levels=np.arange(0,101,10))
> colorbar()
>
> in the above figure, colorbar label shows 0 at the bottom and 100 at the top.
> Yet I want the 0 at the top and the 100 at the bottom, with the same sequence of colors in the colorbar.
>
> One way is to reverse the cmap, and then reverse the colorbar labels at the same time:
> a = np.arange(100).reshape(10,10)
> contourf(a,levels=np.arange(0,101,10),cmap=mat.cm.jet_r)
> cbar = colorbar()
> cbar.set_ticks(np.arange(0,101,10))
> cbar.set_ticklabels(np.arange(100,-1,-10))

Chao,

I think it's as simple as:

import numpy as np
import matplotlib.pyplot as plt

a = np.arange(100).reshape(10,10)
fig, ax1 = plt.subplots()
CS = ax1.contourf(a,levels=np.arange(0,101,10))
cbar = plt.colorbar(CS)
cbar.ax.invert_yaxis()

Does that produce the desired results?
-p

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_nov
Damon McDougall | 10 Nov 16:51 2012
Picon

Re: how to reverse the colorbar and its label at the same time?

On Sat, Nov 10, 2012 at 9:41 AM, Paul Hobson <pmhobson@...> wrote:
> On Sat, Nov 10, 2012 at 7:07 AM, Chao YUE <chaoyuejoy@...> wrote:
>>
>> Dear all,
>>
>> Is there a way to reverse the colorbar label, the default is small value at the bottom and big value at the
top, yet I would like the big value at the bottom and small value at the top.
>>
>> all code in pylab mode.
>>
>> import numpy as np
>> import matplotlib as mat
>>
>> a = np.arange(100).reshape(10,10)
>> contourf(a,levels=np.arange(0,101,10))
>> colorbar()
>>
>> in the above figure, colorbar label shows 0 at the bottom and 100 at the top.
>> Yet I want the 0 at the top and the 100 at the bottom, with the same sequence of colors in the colorbar.
>>
>> One way is to reverse the cmap, and then reverse the colorbar labels at the same time:
>> a = np.arange(100).reshape(10,10)
>> contourf(a,levels=np.arange(0,101,10),cmap=mat.cm.jet_r)
>> cbar = colorbar()
>> cbar.set_ticks(np.arange(0,101,10))
>> cbar.set_ticklabels(np.arange(100,-1,-10))
>
> Chao,
>
> I think it's as simple as:
>
> import numpy as np
> import matplotlib.pyplot as plt
>
> a = np.arange(100).reshape(10,10)
> fig, ax1 = plt.subplots()
> CS = ax1.contourf(a,levels=np.arange(0,101,10))
> cbar = plt.colorbar(CS)
> cbar.ax.invert_yaxis()
>
> Does that produce the desired results?
> -p

Or, you could plot -a instead of a.

--

-- 
Damon McDougall
http://www.damon-is-a-geek.com
Institute for Computational Engineering Sciences
201 E. 24th St.
Stop C0200
The University of Texas at Austin
Austin, TX 78712-1229

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_nov
Chao YUE | 10 Nov 17:37 2012
Picon

Re: how to reverse the colorbar and its label at the same time?

Thanks, I think cbar.ax.invert_yaxis() is what I am looking for.

Chao

On Sat, Nov 10, 2012 at 4:51 PM, Damon McDougall <damon.mcdougall-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
On Sat, Nov 10, 2012 at 9:41 AM, Paul Hobson <pmhobson-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
> On Sat, Nov 10, 2012 at 7:07 AM, Chao YUE <chaoyuejoy-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>>
>> Dear all,
>>
>> Is there a way to reverse the colorbar label, the default is small value at the bottom and big value at the top, yet I would like the big value at the bottom and small value at the top.
>>
>> all code in pylab mode.
>>
>> import numpy as np
>> import matplotlib as mat
>>
>> a = np.arange(100).reshape(10,10)
>> contourf(a,levels=np.arange(0,101,10))
>> colorbar()
>>
>> in the above figure, colorbar label shows 0 at the bottom and 100 at the top.
>> Yet I want the 0 at the top and the 100 at the bottom, with the same sequence of colors in the colorbar.
>>
>> One way is to reverse the cmap, and then reverse the colorbar labels at the same time:
>> a = np.arange(100).reshape(10,10)
>> contourf(a,levels=np.arange(0,101,10),cmap=mat.cm.jet_r)
>> cbar = colorbar()
>> cbar.set_ticks(np.arange(0,101,10))
>> cbar.set_ticklabels(np.arange(100,-1,-10))
>
> Chao,
>
> I think it's as simple as:
>
> import numpy as np
> import matplotlib.pyplot as plt
>
> a = np.arange(100).reshape(10,10)
> fig, ax1 = plt.subplots()
> CS = ax1.contourf(a,levels=np.arange(0,101,10))
> cbar = plt.colorbar(CS)
> cbar.ax.invert_yaxis()
>
> Does that produce the desired results?
> -p

Or, you could plot -a instead of a.

--
Damon McDougall
http://www.damon-is-a-geek.com
Institute for Computational Engineering Sciences
201 E. 24th St.
Stop C0200
The University of Texas at Austin
Austin, TX 78712-1229



--
***********************************************************************************
Chao YUE
Laboratoire des Sciences du Climat et de l'Environnement (LSCE-IPSL)
UMR 1572 CEA-CNRS-UVSQ
Batiment 712 - Pe 119
91191 GIF Sur YVETTE Cedex
Tel: (33) 01 69 08 29 02; Fax:01.69.08.77.16
************************************************************************************

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_nov
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@...
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Gmane