Source code for tueplots.axes

"""Axes behaviour."""


[docs] def lines( *, base_width=0.5, line_base_ratio=2.0, tick_major_base_ratio=1.0, tick_minor_base_ratio=0.5, tick_size_width_ratio=3.0, tick_major_size_min=3.0, tick_minor_size_min=2.0, axisbelow=True, ): """Adjust linewidth(s) according to a base width.""" tick_major_width = tick_major_base_ratio * base_width tick_minor_width = tick_minor_base_ratio * base_width tick_major_size = max(tick_major_size_min, tick_size_width_ratio * tick_major_width) tick_minor_size = max(tick_minor_size_min, tick_size_width_ratio * tick_minor_width) return { # Set the line-widths appropriately (including the grid) "axes.linewidth": base_width, "lines.linewidth": line_base_ratio * base_width, "xtick.major.width": tick_major_width, "ytick.major.width": tick_major_width, "xtick.minor.width": tick_minor_width, "ytick.minor.width": tick_minor_width, "xtick.major.size": tick_major_size, "ytick.major.size": tick_major_size, "xtick.minor.size": tick_minor_size, "ytick.minor.size": tick_minor_size, "grid.linewidth": base_width, # Legend frame linewidth "patch.linewidth": base_width, "legend.edgecolor": "inherit", # inherit color from axes. passing 'color' leads to awkward future warnings. # Control the zorder of the ticks and gridlines # This is somewhat out of place in this function, but creating a new function # seems a bit unnecessary here... suggestions welcome! "axes.axisbelow": axisbelow, }
[docs] def grid(*, grid_alpha=0.2, grid_linestyle="solid"): """Adjust the grid-style.""" return { # Update the linestyle of the grid # (it shares a color with the frame, and needs to be distinguishable) "grid.linestyle": grid_linestyle, "grid.alpha": grid_alpha, }
[docs] def legend(*, shadow=False, frameon=True, fancybox=False): """Adjust the legend-style.""" return { "legend.shadow": shadow, "legend.frameon": frameon, "legend.fancybox": fancybox, }
[docs] def color(*, base="black", face="none"): """Adjust the axes' color.""" return { "text.color": base, "axes.edgecolor": base, "axes.labelcolor": base, "xtick.color": base, "ytick.color": base, "grid.color": base, "axes.facecolor": face, }
[docs] def spines(*, left=True, right=True, top=True, bottom=True): """Adjust the visibility of the axes' spines.""" return { "axes.spines.left": left, "axes.spines.right": right, "axes.spines.top": top, "axes.spines.bottom": bottom, }
[docs] def tick_direction(*, x="inout", y="inout"): """Adjust the tick direction.""" return { "xtick.direction": x, "ytick.direction": y, }