Source code for aplpy.ticks

from __future__ import absolute_import, print_function, division

from .decorators import auto_refresh


[docs]class Ticks(object): @auto_refresh def __init__(self, parent): self._figure = parent._figure self._ax = parent.ax self.x = parent.x self.y = parent.y self._wcs = self._ax.wcs
[docs] def set_tick_direction(self, direction): """ Set the direction of the ticks to be facing out of the axes (``out``) or into the axes (``in``). """ if direction in ('in', 'out'): self.ax.coords[self.x].ticks.set_tick_out(direction == 'out') self.ax.coords[self.y].ticks.set_tick_out(direction == 'out') else: raise ValueError("direction should be 'in' or 'out'")
[docs] @auto_refresh def set_xspacing(self, spacing): """ Set the x-axis tick spacing, in degrees. To set the tick spacing to be automatically determined, set this to 'auto'. """ self._set_spacing(self.x, spacing)
[docs] @auto_refresh def set_yspacing(self, spacing): """ Set the y-axis tick spacing, in degrees. To set the tick spacing to be automatically determined, set this to 'auto'. """ self._set_spacing(self.y, spacing)
@auto_refresh def _set_spacing(self, coord, spacing): if spacing == 'auto': self._ax.coords[coord].set_ticks(spacing=None) else: coord_unit = self._wcs.wcs.cunit[coord] self._ax.coords[coord].set_ticks(spacing=spacing * coord_unit)
[docs] @auto_refresh def set_color(self, color): """ Set the color of the ticks """ self._ax.coords[self.x].set_ticks(color=color) self._ax.coords[self.y].set_ticks(color=color)
[docs] @auto_refresh def set_length(self, length, minor_factor=0.5): """ Set the length of the ticks (in points) """ # TODO: Can't set minor ticksize. Should we just remove that? # Not mentioned in the APLpy in docs either self._ax.coords[self.x].set_ticks(size=length) self._ax.coords[self.y].set_ticks(size=length)
[docs] @auto_refresh def set_linewidth(self, linewidth): """ Set the linewidth of the ticks (in points) """ self._ax.coords[self.x].set_ticks(width=linewidth) self._ax.coords[self.y].set_ticks(width=linewidth)
[docs] @auto_refresh def set_minor_frequency(self, xfrequency, yfrequency=None): ''' Set the number of subticks per major tick. Set to one to hide minor ticks. If not yfrequency given, frequency is the same in both axis. Otherwise, xfrequency represents the frequency in the xaxis and yfrequency the one in the yaxis. ''' if yfrequency is None: yfrequency = xfrequency self._ax.coords[self.x].set_minor_frequency(xfrequency) self._ax.coords[self.y].set_minor_frequency(yfrequency)
[docs] @auto_refresh def show(self): """ Show the x- and y-axis ticks """ self.show_x() self.show_y()
[docs] @auto_refresh def hide(self): """ Hide the x- and y-axis ticks """ self.hide_x() self.hide_y()
[docs] @auto_refresh def show_x(self): """ Show the x-axis ticks """ self._ax.coords[self.x].set_ticks_visible(True)
[docs] @auto_refresh def hide_x(self): """ Hide the x-axis ticks """ self._ax.coords[self.x].set_ticks_visible(False)
[docs] @auto_refresh def show_y(self): """ Show the y-axis ticks """ self._ax.coords[self.y].set_ticks_visible(True)
[docs] @auto_refresh def hide_y(self): """ Hide the y-axis ticks """ self._ax.coords[self.y].set_ticks_visible(False)