Chao, I'm glad you were able to get what you wanted.
I don't know how to add anything to the gallery. -Sterling On Nov 17, 2012, at 3:32AM, Chao YUE wrote: > Hi Sterling, > > Thanks for the help. Now we have a complete script that works as what we want: > > ****labels parallel with the colorbar with colorbar seperated **** > > By the way, is it possible to put in the gallery? > > > from pylab import * > a = np.arange(100).reshape(10,10) > cbarlevel=np.arange(0,101,10) > cs=contourf(a,levels=cbarlevel) > cbar = colorbar() > cbar.set_ticks(cbarlevel) > > #prepare the final label that we want > cbar_label = [] > for i in range(len(cbarlevel)-1): > cbar_label.append(" {0}-{1}".format(cbarlevel[i],cbarlevel[i+1])) > > cbar.set_ticklabels(['']*len(cbarlevel)) #remove the original labels > #set ticks as white; the 'length' parameter is a bit dirty solution > cbar.ax.tick_params(axis='y',left='on',length=10,color='w',width=5) > cbar.outline.remove() #remove the colorbar frame > > #add the label parallel to colorbar; 0.035 to be set by manual observation, a > bit dirty solution. > yloc=np.arange(0.035,0.95,0.1) > for l,y in zip(cbar_label,yloc): > cbar.ax.text(1,y,l,transform=cbar.ax.transAxes,ha='left') > > cheers, > > Chao > > On Sat, Nov 17, 2012 at 12:12 AM, Sterling Smith <smit...@fusion.gat.com> > wrote: > 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> > > > > > -- > *********************************************************************************** > 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 > ************************************************************************************ > ------------------------------------------------------------------------------ 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