biopsykit.plotting.plotting module¶
Module containing several advanced plotting functions.
- biopsykit.plotting.plotting.lineplot(data, x, y, hue=None, style=None, **kwargs)[source]¶
Draw a line plot with error bars with the possibility of several semantic groupings.
This is an extension to seaborn’s lineplot function (
seaborn.lineplot()). It offers the same interface, but several improvements:Data points are not only connected as line, but are also drawn with marker.
Lines can have an offset along the categorical (x) axis for better visualization (seaborn equivalent:
dodge, which is only available forseaborn.pointplot(), not forseaborn.lineplot()).Further plot parameters (axis labels, ticks, etc.) are inferred from the dataframe.
Equivalent to seaborn, the relationship between
xandycan be shown for different subsets of the data using thehueandstyleparameters. If both parameters are assigned two different grouping variables can be represented.Error bars are displayed as standard error.
See the seaborn documentation for further information.
- Parameters
data (
DataFrame) – data to plotx (str) – column of x axis in
datay (str) – column of y axis in
datahue (str, optional) – column name of grouping variable that will produce lines with different colors. Can be either categorical or numeric. If
Nonethen data will not be grouped.style (str, optional) – column name of grouping variable that will produce lines with different dashes and/or marker. If
Nonethen lines will not have different styles.**kwargs –
Additional parameters to configure the plot. Parameters include:
x_offset: offset value to move different groups along the x axis for better visualization. Default: 0.05.xlabel: Label for x axis. If not specified it is inferred from thexcolumn name.ylabel: Label for y axis. If not specified it is inferred from theycolumn name.xticklabels: List of labels for ticks of x axis. If not specifiedorderis taken as tick labels. Iforderis not specified tick labels are inferred from x values.ylim: y-axis limits.order: list specifying the order of categorical values along the x axis.hue_order: list specifying the order of processing and plotting for categorical levels of thehuesemantic.marker: string or list of strings to specify marker style. Ifmarkeris a string, then marker of each line will have the same style. Ifmarkeris a list, then marker of each line will have a different style.linestyle: string or list of strings to specify line style. Iflinestyleis a string, then each line will have the same style. Iflinestyleis a list, then each line will have a different style.legend_fontsize: font size of legend.legend_loc: location of legend in Axes.ax: pre-existing axes for the plot. Otherwise, a new figure and axes object is created and returned.err_kws: additional parameters to control the aesthetics of the error bars. Theerr_kwsare passed down tomatplotlib.axes.Axes.errorbar()ormatplotlib.axes.Axes.fill_between(), depending onerr_style. Parameters include:capsize: length of error bar caps in points
- Returns
- Return type
See also
seaborn.lineplot()line plot function of Seaborn
- biopsykit.plotting.plotting.stacked_barchart(data, **kwargs)[source]¶
Draw a stacked bar chart.
A stacked bar chart has multiple bar charts along a categorical axis (
xaxis) where values are stacked along the value axis (yaxis). The categorical axis corresponds to the columns in the dataframe whereas the value axis corresponds to the rows.This is an extension to the already existing function provided by pandas (
pandas.DataFrame.plot(kind='bar', stacked=True)).- Parameters
data (
DataFrame) – data to plot**kwargs –
Additional parameters to plotting function. For example, this can be:
order: order of items along the categorical axis.ylabel: label of y axis.ax: pre-existing axes for the plot. Otherwise, a new figure and axes object is created and returned.
- Returns
- Return type
See also
stack_groups_percent()function to rearrange dataframe to be plotted as stacked bar chart
- biopsykit.plotting.plotting.feature_boxplot(data, x=None, y=None, order=None, hue=None, hue_order=None, stats_kwargs=None, **kwargs)[source]¶
Draw boxplot with significance brackets.
This is a wrapper of seaborn’s boxplot function (
boxplot()) that allows to add significance brackets that indicate statistical significance.Statistical annotations are plotted using
statannot(https://github.com/webermarcolivier/statannot). This library can either use existing statistical results or perform statistical tests internally. To plot significance brackets a list of box pairs where annotations should be added are required. The p values can be provided as well, or, alternatively, be computed bystatannot. IfStatsPipelinewas used for statistical analysis the list of box pairs and p values can be generated usingsig_brackets()and passed in thestats_kwsparameter. Otherwise, see thestatannotdocumentation for a tutorial on how to specify significance brackets.Note
The input data is assumed to be in long-format.
- Parameters
data (
DataFrame) – data to plotx (str) – column of x axis in
datay (str) – column of y axis in
dataorder (list str, optional) – order to plot the categorical levels along the x axis.
hue (str, optional) – column name of grouping variable. Default:
Nonehue_order (list of str, optional) – order to plot the grouping variable specified by
huestats_kwargs (dict, optional) –
dictionary with arguments for significance brackets.
If annotations should be added, the following parameter is required:
box_pairs: list of box pairs that should be annotated
If already existing box pairs and p values should be used the following parameter is additionally required:
pvalues: list of p values corresponding tobox_pairs
If statistical tests should be computed by
statsannot, the following parameters are required:test: type of statistical test to be computedcomparisons_correction(optional): Whether (and which) type of multi-comparison correction should be applied.Noneto not apply any multi-comparison (default).
The following parameters are optional:
pvalue_thresholds: list of p value thresholds for statistical annotations. The default annotation is: ‘*’: 0.01 <= p < 0.05, ‘**’: 0.001 <= p < 0.01, ‘***’: p < 0.001 (\([[1e-3, "***"], [1e-2, "**"], [0.05, "*"]]\))
**kwargs –
additional arguments that are passed down to
boxplot(), for example:ylabel: label of y axisax: pre-existing axes for the plot. Otherwise, a new figure and axes object is created and returned.
- Returns
- Return type
See also
boxplot()seaborn function to create boxplots
StatsPipelineclass to create statistical analysis pipelines
- biopsykit.plotting.plotting.multi_feature_boxplot(data, x, y, features, group, order=None, hue=None, hue_order=None, stats_kwargs=None, **kwargs)[source]¶
Draw multiple features as boxplots with significance brackets.
For each feature, a new subplot will be created. Similarly to feature_boxplot subplots can be annotated with statistical significance brackets (can be specified via
stats_kwargsparameter). For further information, see thefeature_boxplot()documentation.Note
The input data is assumed to be in long-format.
- Parameters
data (
DataFrame) – data to plotx (str) – column of x-axis in
datay (str) – column of y-axis in
datafeatures (list of str or dict of str) – features to plot. If
featuresis a list, each entry must correspond to one feature category in the index level specified bygroup. A separate subplot will be created for each feature. If similar features (i.e., different slope or AUC parameters) should be combined into one subplot,featurescan be provided as dictionary. Then, the dict keys specify the feature category (a separate subplot will be created for each category) and the dict values specify the feature (or list of features) that are combined into the subplots.group (str) – name of index level with feature names. Corresponds to the subplots that are created.
order (list of str, optional) – order to plot the categorical levels along the x axis
hue (str, optional) – column name of grouping variable. Default:
Nonehue_order (list of str, optional) – order to plot the grouping variable specified by
huestats_kwargs (dict, optional) – nested dictionary with arguments for significance brackets. The behavior and expected parameters are similar to the
stats_kwargsparameter infeature_boxplot(). However, thebox_pairsandpvaluesarguments are expected not to be lists, but dictionaries with keys corresponding to the list entries (or the dict keys) infeaturesand box pair / p-value lists are the dict values.**kwargs –
additional arguments that are passed down to
boxplot(). For example:order: specifies x-axis order for subplots. Can be a list if order is the same for all subplots or a dict if order should be individual for subplotsxticklabels: dictionary to set tick labels of x-axis in subplots. Keys correspond to the list entries (or the dict keys) infeatures. Default:Noneylabels: dictionary to set y-axis labels in subplots. Keys correspond to the list entries (or the dict keys) infeatures. Default:Noneaxs: list of pre-existing axes for the plot. Otherwise, a new figure and axes object is created and returned.
- Returns
- Return type
tuple[matplotlib.figure.Figure, list[matplotlib.axes._axes.Axes]]
See also
boxplot()seaborn function to create boxplots
feature_boxplotplot single feature boxplot
StatsPipelineclass to create statistical analysis pipelines and get parameter for plotting significance brackets
- biopsykit.plotting.plotting.feature_pairplot(data, abbreviate_names=True, **kwargs)[source]¶
Plot feature pairs of a dataset.
This function provides a convenient interface to the
pairplot()class, with several additional features, such as showing abbreviated feature names in the plot with a description below the plot.- Parameters
data (
DataFrame) – DataFrame with feature data to plot. Data is expected to be in wide format.abbreviate_names (bool, optional) – if
True, feature names are abbreviated in the plot and a description is shown below the plot.**kwargs – additional keyword arguments are passed down to
pairplot()
- Returns
FacetGridobject with the pairplot in it.- Return type
See also
pairplotseaborn class to create pairplots