Matplotlib axes label
attn.steven.kuo at gmail.com
attn.steven.kuo at gmail.com
Fri Mar 2 10:22:05 EST 2007
On Mar 2, 7:02 am, "John Henry" <john106he... at hotmail.com> wrote:
> On Mar 1, 10:07 pm, "John Henry" <john106he... at hotmail.com> wrote:
>
>
>
> > On Mar 1, 9:53 pm, attn.steven.... at gmail.com wrote:
>
(snipped)
> > > You can try adjusting the labels and ticks
> > > using matplotlib.ticker.
>
> > > To the example you cited, one can add
>
> > > from matplotlib.ticker import MultipleLocator, FormatStrFormatter
>
> > > # ...
>
> > > minorLocator = MultipleLocator(0.1)
> > > minorFormattor = FormatStrFormatter('%0.1f')
> > > ax.yaxis.set_minor_locator(minorLocator)
> > > ax.yaxis.set_minor_formatter(minorFormattor)
>
> > > show()
>
>
> > Thank you for the response. Yes, adding those lines did work.
>
> > But what exactly is going on here? Why would adding these two lines
> > works?
>
> > Thanks,
>
> Okay, I played with the ticker formater and locator routines.
> Unfortunately, it doesn't help. The locator sets the major value and
> the formatter determines how the axes label is formatted. It doesn't
> gurantee that the first label starts at the origin. Half of my plots
> works, and half of them doesn't.
As default, matplotlib places labels and tick marks
at major ticks. Minor ticks are invisible as
a default.
The lines that I added turned on *minor*
ticks and their labels; I set them to appear
at integer multiples of 0.1 and I
formatted them as floating point numbers.
There's nothing to prevent you from
having minor ticks appear at intervals
that exceed those of major ticks. E.g.,
minorLocator = MultipleLocator(1.1)
# etc.
--
Hope this helps,
Steven
More information about the Python-list
mailing list