[Matplotlib-users] changing labeling of axes

Slavin, Jonathan jslavin at cfa.harvard.edu
Wed Nov 8 15:05:59 EST 2017


Actually I have now found a better approach. What I do is create the
histogram using numpy.histogram2d with logarithmic bins as input.  Then I
use pcolormesh to create the plot.  I'm basically following the lead shown
on the numpy.histogram2d page.

Jon

On Wed, Nov 8, 2017 at 2:01 PM, Benjamin Root <ben.v.root at gmail.com> wrote:

> 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
>>
>>
>


-- 
________________________________________________________
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
________________________________________________________
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/matplotlib-users/attachments/20171108/977b983b/attachment.html>


More information about the Matplotlib-users mailing list