Source code for draugr.visualisation.seaborn_utilities.seaborn_utilities

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

__author__ = "Christian Heider Nielsen"
__doc__ = r"""

           Created on 18-02-2021
           """

from typing import Iterable, List

import numpy
import pandas
import seaborn
from matplotlib import pyplot
from matplotlib.axes import Axes

from warg import Number

__all__ = [
    "despine_all",
    "set_y_log_scale",
    "exponential_moving_average",
]


[docs]def despine_all(ax: Axes = None) -> None: """ :param ax: """ if ax is None: ax = pyplot.gca() seaborn.despine( ax=ax, top=True, right=True, left=True, bottom=True, offset=None, trim=False )
[docs]def set_y_log_scale(ax: Axes = None) -> None: """ :param ax: """ if ax is None: ax = pyplot.gca() ax.set(yscale="log")
[docs]def exponential_moving_average( scalars: Iterable[Number], decay: float = 0.4 ) -> List[Number]: """ Like is usual in tensorboard visual rep just weight is inverse :param decay: :param scalars: :return: """ if isinstance(scalars, numpy.ndarray): assert len(scalars.shape) <= 1, "only support one dimensional series" last = next(iter(scalars)) smoothed = list() for new in scalars: # 1st-order IIR low-pass filter to attenuate the higher- # frequency components of the time-series. smoothed_point = last * decay + new * (1.0 - decay) smoothed.append(smoothed_point) last = smoothed_point return smoothed
if __name__ == "__main__": def stest_box_plot_props() -> None: """ :rtype: None """ props = { "boxprops": {"facecolor": "none", "edgecolor": "red"}, "medianprops": {"color": "green"}, "whiskerprops": {"color": "blue"}, "capprops": {"color": "yellow"}, } seaborn.boxplot( x="variable", y="value", data=pandas.DataFrame( [range(3), range(3)], columns=("variable", "value", "value2") ), showfliers=False, linewidth=0.75, **props ) pyplot.show() stest_box_plot_props()