cytoflow.views.stats_2d

Plots two statistics on a scatter plot.

Stats2DView – the IView class that makes the plot.

class cytoflow.views.stats_2d.Stats2DView[source]

Bases: cytoflow.views.base_views.Base2DStatisticsView

Plot two statistics on a scatter plot. A point (X,Y) is drawn for every pair of elements with the same value of variable; the X value is from xstatistic and the Y value is from ystatistic.

xstatistic

The name of the statistic to plot on the X axis. Must be a key in the Experiment.statistics attribute of the Experiment being plotted.

Type

(str, str)

ystatistic

The name of the statistic to plot on the Y axis. Must be a key in the Experiment.statistics attribute of the Experiment being plotted.

Type

(str, str)

x_error_statistic

The name of the statistic used to plot error bars on the X axis. Must be a key in the Experiment.statistics attribute of the Experiment being plotted.

Type

(str, str)

y_error_statistic

The name of the statistic used to plot error bars on the Y axis. Must be a key in the Experiment.statistics attribute of the Experiment being plotted.

Type

(str, str)

xscale

The scale applied to xstatistic before plotting it.

Type

{‘linear’, ‘log’, ‘logicle’}

yscale

The scale applied to ystatistic before plotting it.

Type

{‘linear’, ‘log’, ‘logicle’}

variable

The condition that varies when plotting this statistic: used for the x axis of line plots, the bar groups in bar plots, etc.

Type

str

subset

An expression that specifies the subset of the statistic to plot. Passed unmodified to pandas.DataFrame.query.

Type

str

xfacet

Set to one of the Experiment.conditions in the Experiment, and a new column of subplots will be added for every unique value of that condition.

Type

String

yfacet

Set to one of the Experiment.conditions in the Experiment, and a new row of subplots will be added for every unique value of that condition.

Type

String

huefacet

Set to one of the Experiment.conditions in the in the Experiment, and a new color will be added to the plot for every unique value of that condition.

Type

String

huescale

How should the color scale for huefacet be scaled?

Type

{‘linear’, ‘log’, ‘logicle’}

Examples

Make a little data set.

>>> import cytoflow as flow
>>> import_op = flow.ImportOp()
>>> import_op.tubes = [flow.Tube(file = "Plate01/RFP_Well_A3.fcs",
...                              conditions = {'Dox' : 10.0}),
...                    flow.Tube(file = "Plate01/CFP_Well_A4.fcs",
...                              conditions = {'Dox' : 1.0})]
>>> import_op.conditions = {'Dox' : 'float'}
>>> ex = import_op.apply()

Create two new statistics

>>> ch_op = flow.ChannelStatisticOp(name = 'MeanByDox',
...                     channel = 'Y2-A',
...                     function = flow.geom_mean,
...                     by = ['Dox'])
>>> ex2 = ch_op.apply(ex)
>>> ch_op_2 = flow.ChannelStatisticOp(name = 'SdByDox',
...                       channel = 'Y2-A',
...                       function = flow.geom_sd,
...                       by = ['Dox'])
>>> ex3 = ch_op_2.apply(ex2)

Plot the statistics

>>> flow.Stats2DView(variable = 'Dox',
...                  xstatistic = ('MeanByDox', 'geom_mean'),
...                  xscale = 'log',
...                  ystatistic = ('SdByDox', 'geom_sd'),
...                  yscale = 'log').plot(ex3)
../../_images/cytoflow-views-stats_2d-3.png
enum_plots(experiment)[source]

Returns an iterator over the possible plots that this View can produce. The values returned can be passed to plot.

plot(experiment, plot_name=None, **kwargs)[source]

Plot a chart of two statistics’ values as a common variable changes.

Parameters
  • experiment (Experiment) – The Experiment to plot using this view.

  • title (str) – Set the plot title

  • xlabel (str) – Set the X axis label

  • ylabel (str) – Set the Y axis label

  • huelabel (str) – Set the label for the hue facet (in the legend)

  • legend (bool) – Plot a legend for the color or hue facet? Defaults to True.

  • sharex (bool) – If there are multiple subplots, should they share X axes? Defaults to True.

  • sharey (bool) – If there are multiple subplots, should they share Y axes? Defaults to True.

  • row_order (list) – Override the row facet value order with the given list. If a value is not given in the ordering, it is not plotted. Defaults to a “natural ordering” of all the values.

  • col_order (list) – Override the column facet value order with the given list. If a value is not given in the ordering, it is not plotted. Defaults to a “natural ordering” of all the values.

  • hue_order (list) – Override the hue facet value order with the given list. If a value is not given in the ordering, it is not plotted. Defaults to a “natural ordering” of all the values.

  • height (float) – The height of each row in inches. Default = 3.0

  • aspect (float) – The aspect ratio of each subplot. Default = 1.5

  • col_wrap (int) – If xfacet is set and yfacet is not set, you can “wrap” the subplots around so that they form a multi-row grid by setting this to the number of columns you want.

  • sns_style ({“darkgrid”, “whitegrid”, “dark”, “white”, “ticks”}) – Which seaborn style to apply to the plot? Default is whitegrid.

  • sns_context ({“paper”, “notebook”, “talk”, “poster”}) – Which seaborn context to use? Controls the scaling of plot elements such as tick labels and the legend. Default is talk.

  • palette (palette name, list, or dict) – Colors to use for the different levels of the hue variable. Should be something that can be interpreted by seaborn.color_palette, or a dictionary mapping hue levels to matplotlib colors.

  • despine (Bool) – Remove the top and right axes from the plot? Default is True.

  • plot_name (str) – If this IView can make multiple plots, plot_name is the name of the plot to make. Must be one of the values retrieved from enum_plots.

  • xlim ((float, float)) – Set the range of the plot’s X axis.

  • ylim ((float, float)) – Set the range of the plot’s Y axis.

  • color (a matplotlib color) – The color to plot with. Overridden if huefacet is not None

  • linestyle ({‘solid’ | ‘dashed’, ‘dashdot’, ‘dotted’ | (offset, on-off-dash-seq) | ‘-’ | ‘–’ | ‘-.’ | ‘:’ | ‘None’ | ‘ ‘ | ‘’})

  • marker (a matplotlib marker style) – See http://matplotlib.org/api/markers_api.html#module-matplotlib.markers

  • markersize (int) – The marker size in points

  • markerfacecolor (a matplotlib color) – The color to make the markers. Overridden (?) if huefacet is not None

  • alpha (the alpha blending value, from 0.0 (transparent) to 1.0 (opaque))

Notes

Other kwargs are passed to matplotlib.pyplot.plot