Hi Ryan,
Thanks again,
Well your solution is also working.
I get very similar results with
class NiceSciFormatter(Formatter):
def __call__(self, x, pos=None):
a="%1.1E" % x
a=a[:5]+a[-1]
return a
It seems though that your solution enables more fine tuning !
Cheers,
Oz
On Thu, Sep 23, 2010 at 5:10 PM, Ryan May <rma...@gmail.com> wrote:
> On Thu, Sep 23, 2010 at 8:52 AM, Oz Nahum <nahu...@gmail.com> wrote:
> > Hi Ryan,
> >
> > Thanks for your answer. However, I don't understand from the existing
> > documentation how to use tickers.
> >
> > In the past I used the following method:
> > class SciFormatter(Formatter):
> > def __call__(self, x, pos=None):
> > return "%1.1e" % x
> >
> >
> > axs.yaxis.set_major_formatter(SciFormatter())
> >
> > This still does not allow me to get read of the zeros that matplotlib
> > coherces .
> >
> > I would like to manipulate the strings of the tick labels directly. I
> know
> > it's not ideal, but I it should work.
> >
> > If I could access the label "1.1E+01", I could tell python just to take
> > label[:-2] and glue it to label[-1], which will give me
> > "1.1E+1"
> >
> > I would be greatful if someone showed me how to access that string.
>
> Why not just format the number yourself?
>
> import matplotlib.pyplot as plt
> import numpy as np
>
> def format(x, pos=None):
> if x == 0.0:
> exp = 0
> else:
> exp = int(np.log10(np.abs(x)))
> mant = x / 10**exp
> return '%.2fE%+d' % (mant, exp)
>
> f = plt.figure()
> ax = f.add_subplot(111)
> data = np.array([1,2,3,4,5]) / 100.
> ax.plot(data, np.arange(len(data)))
>
> ax.xaxis.set_major_formatter(plt.FuncFormatter(format))
>
> plt.show()
>
> Ryan
>
> --
> Ryan May
> Graduate Research Assistant
> School of Meteorology
> University of Oklahoma
>
--
Oz Nahum
Graduate Student
Zentrum für Angewandte Geologie
Universität Tübingen
---
Imagine there's no countries
it isn't hard to do
Nothing to kill or die for
And no religion too
Imagine all the people
Living life in peace
------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users