new scientific notation format

Hi,

this seems to be very nice! Unfortunately my knowledge about the inner life of matplotlib is not that deep, so I didn't understand where and what to change to benefit from the new format.

Could you please give some further information.

Thanks!
Sascha

···

===================================================================

Message: 7
From: Darren Dale <dd55@...163...>
Reply-To: dd55@...163...
To: matplotlib-devel@lists.sourceforge.net,
        matplotlib-users@lists.sourceforge.net
Date: Mon, 2 May 2005 19:57:08 -0400
Subject: [Matplotlib-users] new scientific notation format
Hi Everyone,
There is a new formatter in ticker.py called NewScalarFormatter. If you have
scientific notation in your plots, you may like the results. If you would
like to try it out, you need to change ScalarFormatter->OldScalarFormatter,
and NewScalarFormatter->ScalarFormatter. It will then be the default for
linear scale axes. I would appreciate feedback, it will hopefully become the
default at some point.
Darren
--__--__--
Message: 8
To: dd55@...163...
Cc: matplotlib-users@lists.sourceforge.net
From: John Hunter <jdhunter@...4...>
Date: Mon, 02 May 2005 21:08:20 -0500
Subject: [Matplotlib-users] Re: [matplotlib-devel] new scientific notation format

   > Hi Everyone, There is a new formatter in ticker.py called
    > NewScalarFormatter. If you have scientific notation in
    > your plots, you may like the results. If you would like to
    > try it out, you need to change
    > ScalarFormatter->OldScalarFormatter, and
    > NewScalarFormatter->ScalarFormatter. It will then be the
    > default for linear scale axes. I would appreciate
    > feedback, it will hopefully become the default at some
    > point.
Maybe you can provide an example that illustrates the range of normal
and pathological changes that the new formatter is designed to
address, so that people can compare the results visually.
The basic problem the new formatter is trying to solve is to properly
format cases where the view limits range from something like 2e10 to
2e10+5.
from pylab import *
  x = arange(5.0)
  plot(x+2e10, x)
  show()
Ie, limits where the range is small compared to end values. In this
case the new formatter figures out what the offset is, factors it out
of the ticks, and displays it on the axis, so for the case above, you
would see something like this for the x-axis
----------------------------------------------
  0 1 2 3 4 5
                                             +2e10
and the location of the offset text (2e10) is configurable.

Sure, I forgot to mention that I made the changes in CVS, so for now you will
need to get a fresh copy of MPL from CVS, make the changes I suggested in
ticker.py, remove your old MPL from python/site-packages, and install from
CVS. If you dont want to deal with CVS, you can probably try it in the next
release.

In addition to the example John gave, there are two more improvements. If you
plot(arange(0,5e10,1e9)) you would get something like this:

···

On Tuesday 03 May 2005 3:25 am, Sascha Schnepp wrote:

Hi,

this seems to be very nice! Unfortunately my knowledge about the inner life
of matplotlib is not that deep, so I didn't understand where and what to
change to benefit from the new format.

Could you please give some further information.

----------------------------------------------
  0 1 2 3 4 5
                                             x1e10

if you plot(arange(0,5e6,1e5)+2e10) you would get something like this:

----------------------------------------------
  0 1 2 3 4 5
                                     x1e6+2e10

Finally, I look at all the ticklabels together to figure out how to format
them. Labels that used to look like this:

----------------------------------------------
  0 0.5 1 1.5 2 2.5

Will now look like this:

----------------------------------------------
  0 0.5 1.0 1.5 2.0 2.5

I think it looks better, especially on the y axis.

===================================================================

> Message: 7
> From: Darren Dale <dd55@...163...>
> Reply-To: dd55@...163...
> To: matplotlib-devel@lists.sourceforge.net,
> matplotlib-users@lists.sourceforge.net
> Date: Mon, 2 May 2005 19:57:08 -0400
> Subject: [Matplotlib-users] new scientific notation format
>Hi Everyone,
>There is a new formatter in ticker.py called NewScalarFormatter. If you
> have scientific notation in your plots, you may like the results. If you
> would like to try it out, you need to change
> ScalarFormatter->OldScalarFormatter, and
> NewScalarFormatter->ScalarFormatter. It will then be the default for
> linear scale axes. I would appreciate feedback, it will hopefully become
> the default at some point.
>Darren
>--__--__--
>Message: 8
> To: dd55@...163...
> Cc: matplotlib-users@lists.sourceforge.net
> From: John Hunter <jdhunter@...4...>
> Date: Mon, 02 May 2005 21:08:20 -0500
> Subject: [Matplotlib-users] Re: [matplotlib-devel] new scientific
> notation format
>

>
> > Hi Everyone, There is a new formatter in ticker.py called
> > NewScalarFormatter. If you have scientific notation in
> > your plots, you may like the results. If you would like to
> > try it out, you need to change
> > ScalarFormatter->OldScalarFormatter, and
> > NewScalarFormatter->ScalarFormatter. It will then be the
> > default for linear scale axes. I would appreciate
> > feedback, it will hopefully become the default at some
> > point.
>Maybe you can provide an example that illustrates the range of normal
> and pathological changes that the new formatter is designed to
> address, so that people can compare the results visually.
>The basic problem the new formatter is trying to solve is to properly
> format cases where the view limits range from something like 2e10 to
> 2e10+5.
> from pylab import *
> x = arange(5.0)
> plot(x+2e10, x)
> show()
>Ie, limits where the range is small compared to end values. In this
> case the new formatter figures out what the offset is, factors it out
> of the ticks, and displays it on the axis, so for the case above, you
> would see something like this for the x-axis
> ----------------------------------------------
> 0 1 2 3 4 5
> +2e10
>and the location of the offset text (2e10) is configurable.

-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games.
Get your fingers limbered up and give it your best shot. 4 great events, 4
opportunities to win big! Highest score wins.NEC IT Guy Games. Play to
win an NEC 61 plasma display. Visit necitguy.com - This website is for sale! - necitguy Resources and Information.
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
matplotlib-users List Signup and Options

--
Darren S. Dale

Bard Hall
Department of Materials Science and Engineering
Cornell University
Ithaca, NY. 14850

dd55@...163...

I tried out the new tick formatter, which is very nice. That said, the new formatter doesn't work if one is using numarray 1.2.3 as numerix. The bug is in numarraycore.py, where all instances of add.reduce have to change to ufunc.add.reduce; this was fixed in numarray 1.3.1.

Just hoping to save some others a bit of work; I'm sure many of you are not as compulsive as I am about doing upgrades :wink: