[Matplotlib-users] changing labeling of axes
Benjamin Root
ben.v.root at gmail.com
Wed Nov 8 14:01:51 EST 2017
By default, the minor ticks are turned off. You have to turn it on
yourself. This is one of the things that set_xscale('log') does for you
automatically.
On Wed, Nov 8, 2017 at 1:50 PM, Slavin, Jonathan <jslavin at cfa.harvard.edu>
wrote:
> I was able to get the major ticks labeled in the way I want by doing:
> ax.xaxis.set_major_formatter(ticker.FuncFormatter(lambda x,pos:
> r'$10^{%i}$'% x))
> I don't get any minor ticks that way. I could live with that, though I'd
> prefer to get logarithmically spaced minor ticks. I tried
> ax.xaxis.set_minor_locator(ticker.LogLocator())
> but that seemed to have no effect.
>
> The idea of providing logarithmically bin edges seems like a good one,
> but as Tom says does not do what is expected. I tried using numpy's
> histogram2d providing logarithmically spaced bins and it worked as expected
> (though for some reason the array returned was transposed), so I think this
> is a bug in hist2d.
>
> Jon
>
> On Wed, Nov 8, 2017 at 12:01 PM, Thomas Caswell <tcaswell at gmail.com>
> wrote:
>
>> You can do this with the formatter on the axis, see
>> https://matplotlib.org/gallery/ticks_and_spines/tick-for
>> matters.html#sphx-glr-gallery-ticks-and-spines-tick-formatters-py and
>> https://matplotlib.org/api/ticker_api.html
>>
>> You can also pass log-spaced bins to `hist2D` and then set the axis
>> scales to log (but trying to construct an example did not got as I
>> expected...)
>>
>> Tom
>>
>> On Wed, Nov 8, 2017 at 10:10 AM Slavin, Jonathan <jslavin at cfa.harvard.edu>
>> wrote:
>>
>>> Hi,
>>>
>>> I'm wondering if anyone knows of a good way to relabel axes for a
>>> particular case I'm dealing with. I'm making a 2D histogram, using hist2d
>>> of course. The thing is that for my case, where I'm plotting the density
>>> vs. pressure for results from a hydro run, it makes more sense to use the
>>> log of the quantities as the inputs for hist2d. So then I need to give the
>>> log of the density and pressure to hist2d. This works fine for making the
>>> histogram, but then the axes are labelled with log10(n), log10(P). I'd
>>> prefer to have the axes labelled as for a logarithmic plot, so instead of
>>> say 4.0, 10^4. Is there a simple way of doing that. I'm pretty sure I can
>>> just specify by hand the ticks and tick labels, though that's kind of a
>>> pain. Any help would be appreciated.
>>>
>>> Regards,
>>> Jon
>>>
>>> --
>>> ________________________________________________________
>>> Jonathan D. Slavin Harvard-Smithsonian CfA
>>> jslavin at cfa.harvard.edu 60 Garden Street, MS 83
>>> phone: (617) 496-7981 Cambridge, MA 02138-1516
>>> cell: (781) 363-0035 USA
>>> ________________________________________________________
>>>
>>> _______________________________________________
>>> Matplotlib-users mailing list
>>> Matplotlib-users at python.org
>>> https://mail.python.org/mailman/listinfo/matplotlib-users
>>>
>>
>
>
> --
> ________________________________________________________
> Jonathan D. Slavin Harvard-Smithsonian CfA
> jslavin at cfa.harvard.edu 60 Garden Street, MS 83
> phone: (617) 496-7981 Cambridge, MA 02138-1516
> cell: (781) 363-0035 USA
> ________________________________________________________
>
>
> _______________________________________________
> Matplotlib-users mailing list
> Matplotlib-users at python.org
> https://mail.python.org/mailman/listinfo/matplotlib-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/matplotlib-users/attachments/20171108/f932ecba/attachment-0001.html>
More information about the Matplotlib-users
mailing list