On 2013/07/04 11:43 PM, Pål Gunnar Ellingsen wrote: > Hi > > I'm having some problems with the formatter of ticks in a polar plot. > Below is a minimum example > The first figure is correct, the second has wrong ticks. > > This has be tested both on 1.2.0 and the latest from git (1.4.x, commit > 64cc3416396ffb2811af80fc810ed63572df71d9 ) > > Does anyone know whys this happens? > Is it a bug in MaxNLocator
No, it is a misunderstanding of how the colorbar works. It's long axis is using its own units, and it maps the color scale to those units. Therefore, one should not try to manipulate the axis properties directly. Below I show two altered lines and one deletion. I think this will produce what you want. > > Kind regards > > Pål > > --------------------------- > #!/usr/bin/env python > > import numpy as np > import matplotlib.pyplot as plt > from matplotlib.ticker import MaxNLocator > > # Data > M=np.sin(np.meshgrid(np.arange(30),np.arange(30))) > M=np.squeeze(M[0,:,:]) > Radius=np.arange(30) > Theta=np.arange(30) > > # Plotting the correct figure > print('Correct ticks') > fig=plt.figure() > ax1 = fig.add_axes([0,0,0.8,1],projection='polar') > c = ax1.pcolormesh(Theta, Radius, M) > ax1.set_frame_on(False) > plt.xticks([]) > plt.yticks([]) > ax2=fig.add_axes([0.9,0.1,0.05,0.7]) > cb=fig.colorbar(c,cax=ax2) > plt.show() > > # Doing the same plot > print('Wrong ticks by using formatter') > fig=plt.figure() > ax1 = fig.add_axes([0,0,0.8,1],projection='polar') #> c = ax1.pcolormesh(Theta, Radius, M) c = ax1.pcolormesh(Theta, Radius, M, vmin=-1, vmax=1) > ax1.set_frame_on(False) > plt.xticks([]) > plt.yticks([]) > ax2=fig.add_axes([0.9,0.1,0.05,0.7]) #> cb=fig.colorbar(c,cax=ax2) cb = fig.colorbar(c, cax=ax2, ticks=MaxNLocator(3)) > #> # except now setting a limit to the number of ticks using a formatter #> # which results in wrong ticks #> cb.ax.yaxis.set_major_locator(MaxNLocator(3)) > plt.show() Eric > ----------------------- > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Windows: > > Build for Windows Store. > > http://p.sf.net/sfu/windows-dev2dev > > > > _______________________________________________ > Matplotlib-devel mailing list > Matplotlib-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/matplotlib-devel > ------------------------------------------------------------------------------ This SF.net email is sponsored by Windows: Build for Windows Store. http://p.sf.net/sfu/windows-dev2dev _______________________________________________ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel