|
From: Benjamin R. <ben...@ou...> - 2011-02-05 18:43:45
|
On Fri, Feb 4, 2011 at 6:41 PM, Benjamin Root <ben...@ou...> wrote: > On Friday, February 4, 2011, Massimo Di Stefano > <mas...@gm...> wrote: > > Hello All, > > > > > > i'm plotting a 3d colored surface using a 4D array that comes from a .mat > file > > using this code : > > > > > > import scipy.io as sio > > import pylab as p > > import mpl_toolkits.mplot3d.axes3d as p3 > > > > def loadmatfile(matfile): > > matdata = sio.loadmat(matfile) > > return matdata > > > > > > def plot3dcolor(matfile): > > data = loadmatfile(matfile) > > x = data['X_depth'] > > y = data['Y_depth'] > > z = -data['Z_depth'] > > c = data['Z_compl'] > > fig=p.figure() > > ax = p3.Axes3D(fig) > > cmap = p.get_cmap('jet') > > norm = p.Normalize(c.min(), c.max()) > > colors = cmap(norm(c)) > > ax.plot_surface(x, y, z, rstride=10, cstride=10, facecolors=colors) > > ax.set_xlabel('X') > > ax.set_ylabel('Y') > > ax.set_zlabel('Z') > > print x,y > > p.show() > > > > > > matfile = '/Users/epy/Desktop/complexity_depth_grid1.mat' > > plot3dcolor(matfile) > > > > > > > > the results is nice : > > > > http://img831.imageshack.us/f/schermata20110204a14542.png/ > > > > > > but as you can see, the mouse cursor shows me the x,y values (they are > longitude and latitude) > > but on the axis i have them starting from 0 ... > > > > how can i change the axis to display the lon-lat coordinates ? > > > > > > thanks a lot for any help! > > > > Massimo. > > > > > > I suspect what is happening is that the axes label numbers are right, > but is not showing the offset information. The display of offset data > in a 3d plot is a new feature that exists only in the development > branch. > > To confirm this, could you send me your may file (if it is small) so > that I can try out your script? > > Ben Root > Ok, so I can confirm that there are offset labels displaying when using the development version of mpl, which means that for some reason, the auto-ticker is deciding to use the offset display instead of just the regular display. Usually, this behavior doesn't trigger until 1e4 or larger, I believe? I will have to take a peek at what ticker is being used by default and seeing if it is different from the regular plots. In the meantime, if you need something to work right away, and you feel ambitious, you can fiddle with the tickers through the ax.w_xaxis and ax.w_yaxis objects (not the ax.xaxis and ax.yaxis objects): http://matplotlib.sourceforge.net/api/ticker_api.html?highlight=ticker#matplotlib-ticker Ben Root |