Source code for aplpy.grid

from __future__ import absolute_import, print_function, division

import numpy as np

from .decorators import auto_refresh


[docs]class Grid(object): @auto_refresh def __init__(self, parent): # Save axes and wcs information self.ax = parent.ax self._wcs = parent._wcs self._figure = parent._figure self.x = parent.x self.y = parent.y self.x_unit = self._wcs.wcs.cunit[self.x] self.y_unit = self._wcs.wcs.cunit[self.y] self.grid_type = parent.grid_type # Set defaults self.default_color = 'white' self.default_alpha = 0.5
[docs] @auto_refresh def set_xspacing(self, xspacing): """ Set the grid line spacing in the longitudinal direction Parameters ---------- xspacing : float or str The spacing in the longitudinal direction. To set the spacing to be the same as the ticks, set this to 'tick' """ if xspacing == 'tick': self.ax.coords[self.x].grid(grid_type=self.grid_type) elif np.isreal(xspacing): self.ax.coords[self.x].set_ticks(spacing=xspacing * self.x_unit) else: raise ValueError("Grid spacing should be a scalar or 'tick'")
[docs] @auto_refresh def set_yspacing(self, yspacing): """ Set the grid line spacing in the latitudinal direction Parameters ---------- yspacing : { float, str } The spacing in the latitudinal direction. To set the spacing to be the same as the ticks, set this to 'tick' """ if yspacing == 'tick': self.ax.coords[self.y].grid(grid_type=self.grid_type) elif np.isreal(yspacing): self.ax.coords[self.y].set_ticks(spacing=yspacing * self.y_unit) else: raise ValueError("Grid spacing should be a scalar or 'tick'")
[docs] @auto_refresh def set_color(self, color): """ Set the color of the grid lines Parameters ---------- color : str The color of the grid lines """ self.default_color = color self.ax.coords[self.x].grid(color=color, grid_type=self.grid_type) self.ax.coords[self.y].grid(color=color, grid_type=self.grid_type)
[docs] @auto_refresh def set_alpha(self, alpha): """ Set the alpha (transparency) of the grid lines Parameters ---------- alpha : float The alpha value of the grid. This should be a floating point value between 0 and 1, where 0 is completely transparent, and 1 is completely opaque. """ self.default_alpha = alpha self.ax.coords[self.x].grid(alpha=alpha, grid_type=self.grid_type) self.ax.coords[self.y].grid(alpha=alpha, grid_type=self.grid_type)
[docs] @auto_refresh def set_linewidth(self, linewidth): self.ax.coords[self.x].grid(linewidth=linewidth, grid_type=self.grid_type) self.ax.coords[self.y].grid(linewidth=linewidth, grid_type=self.grid_type)
[docs] @auto_refresh def set_linestyle(self, linestyle): self.ax.coords[self.x].grid(linestyle=linestyle, grid_type=self.grid_type) self.ax.coords[self.y].grid(linestyle=linestyle, grid_type=self.grid_type)
[docs] @auto_refresh def show(self): self.ax.coords[self.x].grid(grid_type=self.grid_type, color=self.default_color, alpha=self.default_alpha) self.ax.coords[self.y].grid(grid_type=self.grid_type, color=self.default_color, alpha=self.default_alpha)
[docs] @auto_refresh def hide(self): self.ax.coords[self.x].grid(draw_grid=False) self.ax.coords[self.y].grid(draw_grid=False)