Source code for ALLCools.plot.size

import seaborn as sns
from matplotlib.colors import Normalize

from .utilities import smart_number_format


[docs]def plot_sizebar(size_norm, sizes, ax): ticks = [0, 0.33, 0.66, 1] n_dots = len(ticks) snorm = Normalize(*size_norm, clip=True) def actual_size(i): return sizes[0] + snorm(i) * (sizes[1] - sizes[0]) delta_norm = max(size_norm) - min(size_norm) actual_value = [min(size_norm) + i * delta_norm for i in ticks] actual_sizes = [actual_size(i) for i in actual_value] width = 1 / (n_dots + 1) x, y = zip(*[(0.5, width * (i + 1)) for i in range(n_dots)]) ax.scatter(x, y, s=actual_sizes) sns.despine(left=True, bottom=True) ax.yaxis.tick_right() ax.set(xticks=[], yticks=y, yticklabels=[smart_number_format(i) for i in ticks]) return ax