Hi,
apropos this offset discussion.
matplotlib makes offsets not aligned to the full tens or some other
easy number with small amount of non-zero digits in front?

For example having ticks:
4917, 4918, 4919, 4920, 4921, 4922

it will now display:
1, 2, 3, 4, 5, 6   with offset 4916  (of even +4.916e3)

this makes reading values on the axis really really hard as every time
one have to perform not obvious summations with all digits of length.
It would be beneficial to have as a default behaviour some
optimization of offsets to have it as some basic number for easy
reading instead of current behaviour that tries to minimize the number
of digits in the ticks and starts from a low number like 1 or 0.05 or
so.
In our case the best display would be:

17, 18, 19, 20, 21, 22  with offset 4900

So we minimize the number of non-zero digits in offset and not a
number of digits in tick labels.

Another more ridiculous example (from life) are ticks with values:

4916.25, 4916.30, 4916.35, 4916.40, 4916.45

are displayed as:

0.05, 0.10, 0.15, 0.20, 0.25   with offset +4.9162e3

and with good algorithm should be displayed as:

0.25, 0.30, 0.35, 0.40, 0.45  with offset 4962  (nottice that not
+4.962e3 as it usually displays now)

and if we would cross the boundary between 4962 and 4963 than ticks
should look like:
2.80, 2.85, 2.90, 2.95, 3.00, 3.05   with offset 4960


In my opinion the current behaviour of offsets really hampers the
usability of these at all, and probably 90% of users spent some time
on nothing but trying to figure out how to turn this thing off (thanks
for sending this solutions here).

So this is message to signal or show the need for fixing this
algorithm. For now I think that the title of this post: "weird
behaviour in x axis", really summarize current offset algorithm
nicely.


Thanks for your comments,
Jan



On Mon, Sep 13, 2010 at 18:35, Eric Firing <efir...@hawaii.edu> wrote:
> On 09/11/2010 11:12 AM, freeeeeekk wrote:
>>
>> Im trying to do a very simple x vs y plot. Where the x values range between
>> 3247 and 3256 and y between 0 and 1. This data is stored in data.dat. I plot
>> it using the code below, the resulting plot is shown in the first of the two
>> plots below. Everything goes well except for the x axis, for some reason
>> tickmarks from 0 up to 9 appear. At the far end of the axis my xmin is
>> printed: 3.247e3.
>> I started looking for the cause and it turns out that as long as my range in
>> x is lower than 10, this happens. If I change the xlimits to xlim(3246,3256)
>> I get the plot at the bottom of this page, everything is fine. But if I
>> change this to for instance xlim(3246.01,3256) or xlim(3245, 3254.99) I get
>> the same behaviour as in the first graph.
>>
>> Does any one have any experience with this/ know the reason for this
>> happening? Thanks!
>>
>> from numpy import *
>> from pylab import *
>>
>> datafile = mlab.load('./data.dat')
>> xx=datafile[:,0]
>> yy=datafile[:,1]
>>
>> plot(xx,yy,'black')
>> xlim(3247,3256)
>> ylim(0,1.2)
>
> with older mpl, try this:
>
> gca().xaxis.set_major_formatter(ScalarFormatter(useOffset=False))
>
> with 1.0 or later try the following instead:
>
> ticklabel_format(useOffset=False)
>
> Eric
>
>>
>> show()
>>
>>
>> http://old.nabble.com/file/p29687404/wrong.png
>> http://old.nabble.com/file/p29687404/right.png
>
>
> ------------------------------------------------------------------------------
> Start uncovering the many advantages of virtual appliances
> and start using them to simplify application deployment and
> accelerate your shift to cloud computing.
> http://p.sf.net/sfu/novell-sfdev2dev
> _______________________________________________
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>

------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to