Source code for draugr.drawers.mpl_drawers.distribution_plot

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

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

           Created on 22/11/2019

           """

from typing import Sequence

import numpy
from matplotlib import pyplot

from draugr.drawers.mpl_drawers.mpldrawer import MplDrawer
from warg import passes_kws_to

__all__ = ["DistributionPlot"]


[docs]class DistributionPlot(MplDrawer): """description"""
[docs] @passes_kws_to(MplDrawer.__init__) @passes_kws_to(pyplot.hist) def __init__( self, window_length: int = None, title: str = "", data_label: str = "Magnitude", reverse: bool = False, overwrite: bool = False, render: bool = True, **kwargs ): super().__init__(render=render, **kwargs) if not render: return self.fig = pyplot.figure(figsize=(4, 4)) self.overwrite = overwrite self.reverse = reverse self.window_length = window_length self.array = [] self.hist_kws = kwargs pyplot.hist(self.array, **self.hist_kws) pyplot.ylabel(data_label) pyplot.title(title) pyplot.tight_layout()
def _draw(self, data: Sequence): """ :param data: :return:""" if not isinstance(data, Sequence): data = [data] self.array.extend(data) pyplot.cla() pyplot.hist(self.array, **self.hist_kws)
if __name__ == "__main__": delta = 1.0 / 60.0 s = DistributionPlot() for _ in range(100): s.draw(numpy.random.sample(), delta)