I have studied how to make floating axes with curvilinear grids. However, I 
cannot figure out how to achieve my desired goals.

The code snippet below is a distillation that takes me part-way there. I cannot 
seem to access/modify the radial tick labels and their locations.

I am plotting data in a latitude/longitude coordinate system. I am converting 
latitude to the radial coordinate, and longitude is the angular coordinate. My 
plot extends from 90 degrees latitude (= zero radius) to 50 degrees latitude 
(=cos(50) radius). The figure appears like a pie wedge, with the point of the 
pie pointing down and the circular part of the wedge at the top.I can easily 
translate the data into radius/angle coordinates for the plotting.

What I cannot figure out is how to change the radial axis labels. I want these 
to go from 90 to 50. That is, coordinate 0 should have the label "90", and 
coordinate 50 should have the label "50". Since I am not versed in the various 
low-level artists, I cannot figure out how to change the axis labels. By 
default, the tick labels run from 0 to 50.

In the code below, I manipulate the object called ax1.axis["left"].  I can 
toggle the labels on and off, and whether there is a text label. However, I 
cannot figure out how to set the tick labels and where they are located. In all 
the examples I've seen online, defaults axes labels are used, so I don't know 
how to do this. I have searched the documentation but cannot find a function 
that allows me to set tick labels and their locations. In the pylab interface, 
this can be done, e.g. with ax.set_xticks and ax.set_xticklabels. I don't know 
how to do this without the pylab interface.

Help is appreciated! Thank you.

=======================
import numpy as np
import matplotlib.pyplot as plt
import mpl_toolkits.axisartist.floating_axes as floating_axes
from   matplotlib.projections import PolarAxes
from matplotlib.transforms import Affine2D

fig = plt.figure()

tr_rotate = Affine2D().translate(30, 0)
tr_scale = Affine2D().scale(np.pi/180., 1.)
tr =  tr_rotate + tr_scale + PolarAxes.PolarTransform()

grid_helper = floating_axes.GridHelperCurveLinear( tr, extremes=( 0, 120,
0.0, 50.0), tick_formatter1 = None, tick_formatter2 = None )

ax1 = floating_axes.FloatingSubplot( fig, 111, grid_helper=grid_helper )

# adjust axis
ax1.axis["left"].set_axis_direction("bottom")
ax1.axis["right"].set_axis_direction("top")

ax1.axis["bottom"].set_visible(False)
ax1.axis["top"].set_axis_direction("bottom")
ax1.axis["top"].toggle(ticklabels=False, label=False)
ax1.axis["left"].toggle(ticklabels=False, label=False) # This is radial axis, 
outside.
ax1.axis["top"].major_ticklabels.set_axis_direction("top")
ax1.axis["top"].label.set_axis_direction("top")

a = ax1.axis["left"]
a.toggle(ticklabels=True, label=True)
a.label.set_text("Magnetic Latitude")

aux_ax = ax1.get_aux_axes(tr)
aux_ax.patch = ax1.patch

fig.add_subplot( ax1 )

aux_ax.plot([55.0, 55.0, 65.0, 45.0], [45., 30.0, 10., 20.], marker='o', ls='')

ax1.grid( True )

plt.show()


=======================

-Tony

--
Tony Mannucci
Supervisor, Ionospheric and Atmospheric Remote Sensing Group
 Mail-Stop 138-308,                     Tel > (818) 354-1699
 Jet Propulsion Laboratory,              Fax > (818) 393-5115
 California Institute of Technology,     Email > tony.mannu...@jpl.nasa.gov
 4800 Oak Grove Drive,                   
http://scienceandtechnology.jpl.nasa.gov/people/a_mannucci/
 Pasadena, CA 91109


------------------------------------------------------------------------------
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to