Thanks a lot!. I don't understand it but It works now as it should.
2009/5/6 Jae-Joon Lee <lee.j.j...@gmail.com>: > On Wed, May 6, 2009 at 9:49 AM, Sebastian Pająk <spcon...@gmail.com> wrote: >> Hello >> >> How can I set decade on log x axis to be equal length to decade on log >> y axis (physically)? >> >> If I make: >> >> ax.set_xscale("log") >> ax.set_yscale("log") >> ax.set_aspect(1) >> >> I get it all wrong, the units are equal, not decades!! >> >> I need the same effect as I get in Gnuplot - the square decades: >> >> set logscale yx; >> set size ratio -1; >> >> How can I do it in matplotlib? >> > > > I'm afraid that this is not directly supported by the matplotlib, > although I think it should. > However, you can do it with some monkey patching (or with some other > similar way). > > > import math > > def get_data_ratio(self): > xmin,xmax = self.get_xbound() > ymin,ymax = self.get_ybound() > > if self.get_xscale() == "log" and self.get_yscale() == "log": > xsize = max(math.fabs(math.log10(xmax)-math.log10(xmin)), 1e-30) > ysize = max(math.fabs(math.log10(ymax)-math.log10(ymin)), 1e-30) > else: > xsize = max(math.fabs(xmax-xmin), 1e-30) > ysize = max(math.fabs(ymax-ymin), 1e-30) > > return ysize/xsize > > from matplotlib.axes import Axes > Axes.get_data_ratio = get_data_ratio > > > ax = gca() > > ax.set_xscale("log") > ax.set_yscale("log") > ax.set_aspect(1.) > > ax.set_xlim(1, 100) > ax.set_ylim(1, 1000) > > > > John and others, > How do you think this being a default behavior? > > Regards, > > -JJ > > > >> ------------------------------------------------------------------------------ >> The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your >> production scanning environment may not be a perfect world - but thanks to >> Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 >> Series Scanner you'll get full speed at 300 dpi even with all image >> processing features enabled. http://p.sf.net/sfu/kodak-com >> _______________________________________________ >> Matplotlib-users mailing list >> Matplotlib-users@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/matplotlib-users >> > ------------------------------------------------------------------------------ The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users