Chao,

If you don't need the tick marks and are only annoyed by their appearance in 
the colorbar, then I am pasting below our code so far setting the tick length 
to 0.  

Code so far:

from pylab import *
fig = figure(2)
fig.clear()
a = np.arange(100).reshape(10,10)
cbarlevel=np.arange(0,101,10)
contourf(a,levels=cbarlevel)
cbar = colorbar()
cbar.set_ticks((cbarlevel[1:]+cbarlevel[:-1])/2.)

#to manipulate the range:
cbar_label = []
for i in range(len(cbarlevel)-1):
   cbar_label.append("{0}-{1}".format(cbarlevel[i],cbarlevel[i+1]))

#Then to apply on the colorbar:
cbar.set_ticklabels(cbar_label)

ax = fig.axes[-1] #This is not as clean as making the axes before the colorbar 
and passing to the colorbar...
ax.yaxis.set_tick_params(length=0)


If you still want the ticks, then you might think of keeping the ticks where 
you had set them originally, then placing texts (pylab.text) with the transAxes 
transform, using the following script:


from pylab import *
fig = figure(2)
fig.clear()
a = np.arange(100).reshape(10,10)
cbarlevel=np.arange(0,101,10)
contourf(a,levels=cbarlevel)
cbar = colorbar()
#cbar.set_ticks((cbarlevel[1:]+cbarlevel[:-1])/2.)
cbar.set_ticks(cbarlevel)

#to manipulate the range:
cbar_label = []
for i in range(len(cbarlevel)-1):
   cbar_label.append("{0}-{1}".format(cbarlevel[i],cbarlevel[i+1]))
#cbar_label.append('')

print cbar_label
#['0-10', '10-20', '20-30', '30-40', '40-50', '50-60', '60-70', '70-80',
#'80-90', '90-100', '']

#Then to apply on the colorbar:
cbar.set_ticklabels(['']*len(cbarlevel))

ax = fig.axes[-1]
#ax.yaxis.set_tick_params(length=0)

yloc = linspace(0,1,len(cbar_label)+1)
yloc = yloc[:-1] + yloc[1]/2.
for l,y in zip(cbar_label,yloc):
        ax.text(1,y,l,transform=ax.transAxes,ha='left')
draw()

-Sterling

On Nov 16, 2012, at 12:58PM, Chao YUE wrote:

> Thanks Sterling. It's a good idea. 
> 
> Unluckily, I lose the original ticks and the ticks appeared in the middle. Is 
> there any approach I can keep the original ticks while realizing what has 
> been shown in the figure?
> 
> Chao
> 
> On Fri, Nov 16, 2012 at 5:47 PM, Sterling Smith <smit...@fusion.gat.com> 
> wrote:
> Chao,
> 
> The secret is positioning your ticks.  I list here an untested attempt at 
> putting the labels at the average of the current and next levels:
> 
> cbar.set_ticks((cbarlevel[1:]+cbarlevel[:-1])/2.)
> 
> Because you have less ticks, then you will want to remove the line
> 
> cbar_level.append('')
> 
> Hope that helps,
> Sterling
> 
> On Nov 16, 2012, at 7:46AM, ChaoYue wrote:
> 
> > I have a bit progress, but still not very well.
> >
> > #to have a contourf plot
> > a = np.arange(100).reshape(10,10)
> > cbarlevel=np.arange(0,101,10)
> > contourf(a,levels=cbarlevel)
> > cbar = colorbar()
> > cbar.set_ticks(cbarlevel)
> >
> > #to manipulate the range:
> > cbar_label = []
> > for i in range(len(cbarlevel)-1):
> >    cbar_label.append("{0}-{1}".format(cbarlevel[i],cbarlevel[i+1]))
> > cbar_label.append('')
> >
> > In [54]: print cbar_label
> > ['0-10', '10-20', '20-30', '30-40', '40-50', '50-60', '60-70', '70-80',
> > '80-90', '90-100', '']
> >
> > #Then to apply on the colorbar:
> > cbar.set_ticklabels(cbar_label)
> >
> > The generated figure is attached. But how can I put the labels a little bit
> > upward to make them parallel with the respective small rectangles in the
> > colorbar? <http://matplotlib.1069221.n5.nabble.com/file/n39786/fig.jpg>
> >
> >
> >
> >
> >
> > --
> > View this message in context: 
> > http://matplotlib.1069221.n5.nabble.com/how-to-put-colorbar-label-beside-the-handle-tp39705p39786.html
> > Sent from the matplotlib - users mailing list archive at Nabble.com.
> >
> > ------------------------------------------------------------------------------
> > Monitor your physical, virtual and cloud infrastructure from a single
> > web console. Get in-depth insight into apps, servers, databases, vmware,
> > SAP, cloud infrastructure, etc. Download 30-day Free Trial.
> > Pricing starts from $795 for 25 servers or applications!
> > http://p.sf.net/sfu/zoho_dev2dev_nov
> > _______________________________________________
> > Matplotlib-users mailing list
> > Matplotlib-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/matplotlib-users
> 
> 
> 
> 
> -- 
> ***********************************************************************************
> 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
> ************************************************************************************
> 
> <fig.jpg>


------------------------------------------------------------------------------
Monitor your physical, virtual and cloud infrastructure from a single
web console. Get in-depth insight into apps, servers, databases, vmware,
SAP, cloud infrastructure, etc. Download 30-day Free Trial.
Pricing starts from $795 for 25 servers or applications!
http://p.sf.net/sfu/zoho_dev2dev_nov
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to