Source code for pliffy.utils

from typing import NamedTuple, Union, Literal, Tuple
from pathlib import Path

from pliffy import estimate


[docs]class ABD(NamedTuple): """Namedtuple to store info/data for `a`, `b`, `diff` Examples -------- >>> xtick_labels=ABD(a='a', b='b', diff='diff') >>> marker=ABD(a='o', b='o', diff='^') """ a: Union[str, int, float, "estimate.Estimates"] = None b: Union[str, int, float, "estimate.Estimates"] = None diff: Union[str, int, float, "estimate.Estimates"] = None def __repr__(self): return f"ABD(a={repr(self.a)}, b={repr(self.b)}, diff={repr(self.diff)})"
[docs]class PliffyInfoABD(NamedTuple): """Information used to generate ABD plot `data_a` and `data_b` are the only two required parameters. Other values will be set to default values if not specified. Parameters ---------- data_a: list = None Data to be plotted and used to compute difference data_b: list = None Data to be plotted and used to compute difference ci_percentage: int = 95 Value used to compute confidence intervals design: Literal["paired", "unpaired"] = "unpaired" Specify whether `data_a` and `data_b` are paired or unpaired measure_units: str = "Amplitude (a.u.)" Label applied to left y-axis xtick_labels: ABD = ABD(a="a", b="b", diff="diff") Labels applied for `data_a`, `data_b` and `diff`. If `diff=""`, tick will be removed decimals: int = 2 Precision with which to report estimates printed to console plot_name: str = "figure" Name given to plot when saved save: Literal[True, False] = False Flag whether or not to save figure save_path: Path = None Path where to save figure save_type: Literal["png", "svg", "pdf"] = "png" What type of figure to save dpi: int = 180 If bitmap format, what dpi to use marker: ABD = ABD(a="o", b="o", diff="^") Marker style to use for plotted data (raw and summary) marker_color: ABD = ABD(a="black", b="black", diff="black") Color of plotted markers summary_marker_size: ABD = ABD(a=5, b=5, diff=6) Size of markers for mean values raw_marker_size: ABD = ABD(a=3, b=3, diff=3) Size of markers for raw data raw_marker_transparency: float = 0.2 Transparency of raw data markers, value between 0.1 (very transparent) to 1 (opaque) paired_data_joining_lines: Literal[True, False] = True Indicate whether or not to plot joining lines between paired raw data points. If `False`, raw data points plotted paired_data_line_color: str = "gainsboro" Color of paired joining lines paired_data_line_width: int = 1 Width of paired joining lines paired_line_transparency: float = 0.3 Transparency of paired joining lines paired_data_plot_raw_diff: Literal[True, False] = True Indicate whether or not to plot raw difference values ci_line_width: int = 1 Width of confidence interval error bars fontsize: int = 11 Font of all labels and tick-values zero_line_color: str = "grey" Color of dotted line indicating zero on the floating difference axis zero_line_width: int = 1 Width of zero line show: Literal[True, False] = True Indicate whether or not to show plot after generation. Set to `False` if want to save but not show figure. Also set to `False` if current figure is a subplot of a larger figure width_height_in_inches: Tuple[float, float] = (8.2, 8.2) Width and height of pliffy plot (in inches). Default is set to a one-column figure in a two-column journal format """ data_a: list = None data_b: list = None ci_percentage: int = 95 design: Literal["paired", "unpaired"] = "unpaired" measure_units: str = "Amplitude (a.u.)" xtick_labels: ABD = ABD(a="a", b="b", diff="diff") decimals: int = 2 plot_name: str = "figure" save: Literal[True, False] = False save_path: Path = None save_type: Literal["png", "svg", "pdf"] = "png" dpi: int = 180 marker: ABD = ABD(a="o", b="o", diff="^") marker_color: ABD = ABD(a="black", b="black", diff="black") summary_marker_size: ABD = ABD(a=5, b=5, diff=6) raw_marker_size: ABD = ABD(a=3, b=3, diff=3) raw_marker_transparency: float = 0.2 paired_data_joining_lines: Literal[True, False] = True paired_data_line_color: str = "gainsboro" paired_data_line_width: int = 1 paired_line_transparency: float = 0.3 paired_data_plot_raw_diff: Literal[True, False] = True ci_line_width: int = 1 fontsize: int = 11 zero_line_color: str = "grey" zero_line_width: int = 1 show: Literal[True, False] = True width_height_in_inches: Tuple[float, float] = (3.23, 3.23) def __repr__(self): return ( f"PliffyInfoABD(\n" f"\tdata_a={repr(self.data_a)},\n" f"\tdata_b={repr(self.data_b)},\n" f"\tci_percentage={repr(self.ci_percentage)},\n" f"\tdesign={repr(self.design)},\n" f"\tmeasure_units={repr(self.measure_units)},\n" f"\txtick_labels={repr(self.xtick_labels)},\n" f"\tdecimals={repr(self.decimals)},\n" f"\tplot_name={repr(self.plot_name)},\n" f"\tsave={repr(self.save)},\n" f"\tsave_path={repr(self.save_path)},\n" f"\tsave_type={repr(self.save_type)},\n" f"\tdpi={repr(self.dpi)},\n" f"\tmarker={repr(self.marker)},\n" f"\tmarker_color={repr(self.marker_color)},\n" f"\tsummary_marker_size={repr(self.summary_marker_size)},\n" f"\traw_marker_size={repr(self.raw_marker_size)},\n" f"\traw_marker_transparency={repr(self.raw_marker_transparency)},\n" f"\tpaired_data_joining_lines={repr(self.paired_data_joining_lines)},\n" f"\tpaired_data_line_color={repr(self.paired_data_line_color)},\n" f"\tpaired_line_transparency={repr(self.paired_line_transparency)},\n" f"\tpaired_data_plot_raw_diff={repr(self.paired_data_plot_raw_diff)},\n" f"\tci_line_width={repr(self.ci_line_width)},\n" f"\tfontsize={repr(self.fontsize)},\n" f"\tzero_line_color={repr(self.zero_line_color)},\n" f"\tzero_line_width={repr(self.zero_line_width)},\n" f"\tshow={repr(self.show)},\n" f"\twidth_height_in_inches={repr(self.width_height_in_inches)},\n" ")" )