Source code for fact.plotting.utils

import matplotlib.pyplot as plt

__all__ = ['calc_linewidth', 'calc_text_size']


[docs]def calc_linewidth(ax=None): """ calculate the correct linewidth for the fact pixels, so that the patches fit nicely together Arguments --------- ax : matplotlib Axes instance the axes you want to calculate the size for Returns ------- linewidth : float """ if ax is None: ax = plt.gca() fig = ax.get_figure() bbox = ax.get_window_extent().transformed(fig.dpi_scale_trans.inverted()) width, height = bbox.width, bbox.height x1, x2 = ax.get_xlim() y1, y2 = ax.get_ylim() x_stretch = (x2 - x1) / 400 y_stretch = (y2 - y1) / 400 linewidth = min(width / x_stretch, height / y_stretch) / 10 return linewidth
[docs]def calc_text_size(ax=None): if ax is None: ax = plt.gca() linewidth = calc_linewidth(ax) textsize = linewidth*5 return textsize