On Thu, 1 Mar 2007, Eric Firing wrote:

>  I agree, and this is a problem with spy also.  If I remember, I will fix it.
>  It is only a minor annoyance, so it is low priority, though.
>
>  There is a difference in the way the axes are labeled between spy and
>  matshow, and I would like to change matshow to agree with spy, unless there
>  is an outcry to the contrary.  Specifically, I think the integer axis ticks
>  should land in the middle of a given row or column, not on the edge.  To see
>  what I mean, compare
>
>  xx = zeros((3,3))
>  xx[1,1] = 1
>  spy(xx, marker='s')
>  to
>  matshow(xx)
>
>  Maybe this is exactly what you mean by your next statement?
> 
> >   Further, I would think a setting like align='center' in pylab.bar() would
> >   be appropriate.  Any simple way of doing this without manually setting 
> >   the
> >   ticks and labels (ironically using forced *.5 ticks)?

Yes, that is exactly what I meant.  For now I am doing the following when
using matshow():

xa, xl = pylab.xticks()
pylab.xticks(xa + 0.5, [str(int(a)) for a in xa])
ya, yl = pylab.xticks()
pylab.yticks(ya + 0.5, [str(int(a)) for a in ya])

which shifts the ticks to the centre from the left edge. In cases where
the last tick falls at far edge of the plot, I modify the above with
xa[:-1]+0.5 and ya[:-1]+0.5 as needed for each axis.

The above code does raise another question.  Originally, I tried

xa, xl = pylab.xticks()
pylab.xticks(xa+0.5, xl)

but I received a type error for the xl argument:

   File "/usr/lib64/python2.4/site-packages/matplotlib/text.py", line 671, in 
set_text
     raise TypeError("This doesn't look like a string: '%s'"%s)
TypeError: This doesn't look like a string: '<matplotlib.text.TextWithDash 
instance at 0x2aaaaac9afc8>'

This error is received when the plot is rendered after a call to pylab.show(). 
Why doesn't the object returned from pylab.xticks() work when you send it back 
to itself as an argument?  Seems weird, especially since there is no problem 
with pylab.xticks(xa, xl) accepting it.

Cheers,
Suresh



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to