Modules

fcp.py

fivecentplots.fcp.axes()
ax_edge_color (hex color string): outer edge color of plot area;

default: #aaaaaa; ex: None

ax_fill_color (hex color string): inner fill color of plot area |

x-axis: [‘linear’, ‘logx’, ‘semilogx’] | y-axis: [‘linear’, ‘logx’, ‘semilogx’] | both: [‘loglog’, ‘log’] | other: [‘symlog’, ‘logit’]; default: #eaeaea; ex: None

ax_size (list of ints): width, height of plot area; default: [400,

400]; ex: None

twin_x (boolean): enable/disable a secondary y-axis (x-axis is

“twinned” or duplicated across two y-axes); default: False; ex: see online docs

twin_y (boolean): enable/disable a secondary x-axis (y-axis is

“twinned” or duplicated across two x-axes) | Note: wrap plots cannot be used when twin_y == True; default: False; ex: see online docs

xmin (float|list of floats|None): minimum x-values; can use a list for

each subplot; default: None; ex: see online docs

x2min (float|list of floats|None): minimum x-values; can use a list

for each subplot; default: None; ex: see online docs

xmax (float|list of floats|None): maximum x-values; can use a list for

each subplot; default: None; ex: see online docs

x2max (float|list of floats|None): maximum x-values for secondary

axis; can use a list for each subplot; default: None; ex: see online docs

ymin (float|list of floats|None): minimum y-values; can use a list for

each subplot; default: None; ex: see online docs

y2min (float|list of floats|None): minimum y-values for secondary

axis; can use a list for each subplot; default: None; ex: see online docs

ymax (float|list of floats|None): maximum y-values; can use a list for

each subplot; default: None; ex: see online docs

y2max (float|list of floats|None): maximum y-values for secondary

axis; can use a list for each subplot; default: None; ex: see online docs

fivecentplots.fcp.bar(*args, **kwargs)

Main bar chart plotting function At minimum, it requires a pandas DataFrame with at least one column for the y axis. Plots can be customized and enhanced by passing keyword arguments. Default values that must be defined in order to generate the plot are pulled from the fcp_params default dictionary :param df: DataFrame containing data to plot :type df: DataFrame :param x: name of x column in df :type x: str :param y: name or list of names of y column(s) in df :type y: str|list

Keyword Arguments

online docs (see) –

Returns

plots

fivecentplots.fcp.boxplot(*args, **kwargs)

Main boxplot plotting function At minimum, it requires a pandas DataFrame with at least one column for the y axis. Plots can be customized and enhanced by passing keyword arguments. Default values that must be defined in order to generate the plot are pulled from the fcp_params default dictionary

Parameters
  • df (DataFrame) – DataFrame containing data to plot

  • y (str|list) – column name in df to use for the box(es)

Keyword Arguments
  • Dividers (Box) –

    box_divider_on (boolean): toggle divider lines between groups on/off;

    default: True; ex: None

    box_divider_color (str): line color; default: #bbbbbb; ex: None

  • Range Lines (Box) –

    box_range_lines_on (boolean): toggle range lines on/off; default:

    True; ex: None

    box_range_lines_color (str): line color; default: #cccccc; ex: None box_range_lines_style (str): horizontal lines at the end of the range;

    default: -; ex: None

    box_range_lines_style2 (str): vertical lines connecting the horizontal

    lines at the end of the range; default: –; ex: None

  • Stat Lines (Box) –

    box_stat_line_on (boolean): toggle divider lines between groups

    on/off; default: True; ex: None

    box_stat_line (str): set the statistic for the connecting line;

    default: mean; ex: None

    box_stat_line_color (str): line color; default: #666666; ex: None

fivecentplots.fcp.cbar()
cbar (boolean): toggle colorbar on/off for contour and heatmap plots;

default: False; ex: see online docs

size (int): cbar width (height will match the height of the axes);

default: 30; ex: nan

fivecentplots.fcp.contour(*args, **kwargs)

Main contour plotting function At minimum, it requires a pandas DataFrame with at least three columns and three column names for the x, y, and z axis. Plots can be customized and enhanced by passing keyword arguments as defined below. Default values that must be defined in order to generate the plot are pulled from the fcp_params default dictionary

Parameters
  • df (DataFrame) – DataFrame containing data to plot

  • x (str|list) – name of list of names of x column in df

  • y (str|list) – name or list of names of y column(s) in df

  • z (str) – name of z column(s) in df

Keyword Arguments

bar (Color) –

cbar (boolean): toggle colorbar on/off for contour and heatmap plots;

default: False; ex: see online docs

size (int): cbar width (height will match the height of the axes);

default: 30; ex: nan

fivecentplots.fcp.deprecated(kwargs)

Fix deprecated keyword args

fivecentplots.fcp.figure()

dpi (int): dots per inch; default: 100; ex: None

fivecentplots.fcp.fit()
fit (int): polynomial degree for the fit; default: None; ex: see

online docs

fit_color (hex color str): color of the fit line; default: #000000;

ex: None

fit_eqn (boolean): display the fit equation on the plot; default:

False; ex: None

fit_font_size (float): font size of the fit eqn and rsq value;

default: 12; ex: None

fit_padding (int): padding in pixels from the top of the plot to the

location of the fit eqn; default: 10; ex: None

fit_range_x (list): compute the fit only over a given range of

x-values; default: None; ex: see online docs

fit_range_y (list): compute the fit only over a given range of

y-values; default: None; ex: nan

fit_rsq (boolean): display the rsq of the fit on the plot; default:

False; ex: None

fivecentplots.fcp.gridlines()
fivecentplots.fcp.heatmap(*args, **kwargs)

Main heatmap plotting function At minimum, it requires a pandas DataFrame with at least three columns and three column names for the x, y, and z axis. Plots can be customized and enhanced by passing keyword arguments as defined below. Default values that must be defined in order to generate the plot are pulled from the fcp_params default dictionary

Parameters
  • df (DataFrame) – DataFrame containing data to plot

  • x (str|list) – name of list of names of x column in df

  • y (str|list) – name or list of names of y column(s) in df

  • z (str) – name of z column(s) in df

Keyword Arguments

bar (Color) –

cbar (boolean): toggle colorbar on/off for contour and heatmap plots;

default: False; ex: see online docs

size (int): cbar width (height will match the height of the axes);

default: 30; ex: nan

fivecentplots.fcp.help()
fivecentplots.fcp.hist(*args, **kwargs)

Histogram plot

fivecentplots.fcp.kw_header(val, indent=' ')

Indent header names

fivecentplots.fcp.kw_print(kw)

Print friendly version of kw dicts

fivecentplots.fcp.labels()
fivecentplots.fcp.legend()
legend (str): name of a DataFrame column to use for grouping; default:

None; ex: see online docs

location (int | str): location of legend (at this time only outside of

the plot is available!): | * 0 | “outside” = outside of plot on right side | * 1 | “upper right” = upper right inside corner | * 2 | “upper left = upper left inside corner | * 3 | “lower left” = lower left inside corner | * 4 | “lower right” = lower right inside corner | * 5 | “right” | * 6 | “center left” | * 7 | “center right” | * 8 | “lower center” | * 9 | “upper center” | * 10 | “center” ; default: 0; ex: None

legend_marker_alpha (float): alpha of the markers in the legend only;

default: 1; ex: see online docs

legend_marker_size (float): marker size in legend only; default: same

as marker_size; ex: see online docs

legend_points (int): number of points for each legend value; default:

1; ex: None

legend_title (str): legend title text; default: defaults to legend

column name; ex: None

fivecentplots.fcp.lines()
colors (hex color str or list of hex color strs): colors to use for

lines and markers; default: default list; ex: see online docs

lines (boolean): toggle line visibility; default: True; ex: None

fivecentplots.fcp.markers()
markers (boolean or list of str characters): if False, turns off

markers on the plot | if a list of characters, sets the markers to be used (one marker type per curve or data set); default: default marker list; ex: see online docs

marker_fill (boolean): turn on/off marker fill; default: False; ex:

None

marker_edge_color (hex color str): set the marker edge color; default:

match the line color scheme; ex: None

marker_edge_width (float): set the marker edge width; default: 1.5;

ex: None

marker_fill_color (hex color str): set the marker fill color (only

rendered if marker_fill=True); default: True; ex: None

marker_jitter (boolean): add a random offset or jitter to the points

around their x-value (useful for box plots); default: True for boxplots | False for all other plot types; ex: None

marker_size (float): size of the markers (can be specified uniquely

from the legend marker size); default: 7; ex: see online docs

fivecentplots.fcp.nq(*args, **kwargs)

Plot normal quantiles of a data set

fivecentplots.fcp.paste_kwargs(kwargs)

Get the kwargs from contents of the clipboard in ini file format

Parameters

kwargs (dict) – originally inputted kwargs

Returns

kwargs

fivecentplots.fcp.plot(*args, **kwargs)

XY plot

fivecentplots.fcp.plot_bar(data, layout, ir, ic, df_rc, kwargs)

Plot data as boxplot

Parameters
  • data (obj) – Data object

  • layout (obj) – layout object

  • ir (int) – current subplot row number

  • ic (int) – current subplot column number

  • df_rc (pd.DataFrame) – data subset

  • kwargs (dict) – keyword args

fivecentplots.fcp.plot_box(dd, layout, ir, ic, df_rc, kwargs)

Plot data as boxplot

Parameters
  • dd (obj) – Data object

  • layout (obj) – layout object

  • ir (int) – current subplot row number

  • ic (int) – current subplot column number

  • df_rc (pd.DataFrame) – data subset

  • kwargs (dict) – keyword args

Keywords:

fivecentplots.fcp.plot_conf_int(ir, ic, iline, data, layout, df, x, y, twin)
fivecentplots.fcp.plot_contour(data, layout, ir, ic, df_rc, kwargs)

Plot contour data

Parameters
  • data (obj) – Data object

  • layout (obj) – layout object

  • ir (int) – current subplot row number

  • ic (int) – current subplot column number

  • df_rc (pd.DataFrame) – data subset

  • kwargs (dict) – keyword args

fivecentplots.fcp.plot_fit(data, layout, ir, ic, iline, df, x, y, twin, leg_name, ngroups)

Plot a fit line

Parameters
  • data (obj) – Data object

  • layout (obj) – layout object

  • ir (int) – current subplot row number

  • ic (int) – current subplot column number

  • iline (int) – iterator

  • df (pd.DataFrame) – input data

  • x (str) – x-column name

  • y (str) – y-column name

  • twin (bool) – denote twin axis

  • leg_name (str) – legend value

  • ngroups (int) – number of groups in this data set

fivecentplots.fcp.plot_heatmap(data, layout, ir, ic, df_rc, kwargs)

Plot heatmap data data

Parameters
  • data (obj) – Data object

  • layout (obj) – layout object

  • ir (int) – current subplot row number

  • ic (int) – current subplot column number

  • df_rc (pd.DataFrame) – data subset

  • kwargs (dict) – keyword args

fivecentplots.fcp.plot_hist(data, layout, ir, ic, df_rc, kwargs)

Plot data as histogram

Parameters
  • data (obj) – Data object

  • layout (obj) – layout object

  • ir (int) – current subplot row number

  • ic (int) – current subplot column number

  • df_rc (pd.DataFrame) – data subset

  • kwargs (dict) – keyword args

fivecentplots.fcp.plot_nq(data, layout, ir, ic, df_rc, kwargs)

Plot data as normal quantiles by sigma

Parameters
  • data (obj) – Data object

  • layout (obj) – layout object

  • ir (int) – current subplot row number

  • ic (int) – current subplot column number

  • df_rc (pd.DataFrame) – data subset

  • kwargs (dict) – keyword args

fivecentplots.fcp.plot_ref(ir, ic, iline, data, layout, df, x, y)

Plot a reference line

fivecentplots.fcp.plot_stat(ir, ic, iline, data, layout, df, x, y, leg_name=None, twin=False)

Plot a line calculated by stats

fivecentplots.fcp.plot_xy(data, layout, ir, ic, df_rc, kwargs)

Plot xy data

Parameters
  • data (obj) – Data object

  • layout (obj) – layout object

  • ir (int) – current subplot row number

  • ic (int) – current subplot column number

  • df_rc (pd.DataFrame) – data subset

  • kwargs (dict) – keyword args

fivecentplots.fcp.plotter(plot_func, **kwargs)

Main plotting function

UPDATE At minimum, it requires a pandas DataFrame with at least two columns and two column names for the x and y axis. Plots can be customized and enhanced by passing keyword arguments as defined below. Default values that must be defined in order to generate the plot are pulled from the fcp_params default dictionary

Parameters
  • df (DataFrame) – DataFrame containing data to plot

  • x (str) – name of x column in df

  • y (str|list) – name or list of names of y column(s) in df

Keyword Arguments

UPDATE

Returns

plots

fivecentplots.fcp.ref_line()
color (hex color str): color of the reference line; default: #000000;

ex: see online docs

text (str): legend text for the reference line; default: “Ref Line”;

ex: nan

fivecentplots.fcp.set_theme(theme=None)

Select a “defaults” file and copy to the user directory

fivecentplots.fcp.tick_labels()
fivecentplots.fcp.ticks()
ticks_<major|minor>_color (hex color string): tick color; default:

#ffffff; ex: None

ticks_major_increment (float): for major ticks only, the increment

between tick marks; default: nan; ex: see online docs

ticks_major_length (float): the length in pixels of the major tick

lines; default: 6.2; ex: None

ticks_minor_length (float): the length in pixels of the minor tick

lines; default: 4.2; ex: None

tick_minor_number (int): enable primary y-axis range sharing across

all subplots; default: True; ex: see online docs

ticks_major_width (float): thickness or edge width of a major tick

mark; default: 2.2; ex: None

ticks_minor_width (float): thickness or edge width of a minor tick

mark; default: 1.3; ex: None

fivecentplots.fcp.ws()
ws_label_col (int): col label to top edge of axes window; default: 10;

ex: None

ws_label_row (nan): row label to right edge of axes window; default:

10; ex: None

ws_col (nan): space between columns; default: 30; ex: None ws_row (nan): space between rows; default: 30; ex: None ws_fig_label (nan): left figure edge to label_y; default: 10; ex: None ws_leg_fig (nan): right legend edge to right figure edge; default: 10;

ex: None

ws_fig_ax (nan): top figure edge to top edge of axes with figure title

disabled; default: 20; ex: None

ws_fig_title (nan): top figure edge to top of figure title; default:

10; ex: None

ws_label_tick (nan): space between axis label and tick labels;

default: 10; ex: None

ws_leg_ax (nan): right edge of axes to left edge of legend box;

default: 20; ex: None

ws_ticks_ax (nan): space between tick labels and axes; default: 5; ex:

None

ws_title_ax (nan): bottom edge of title to top edge of axes window;

default: 10; ex: None

ws_ax_fig (nan): right edge of axes to right edge of figure with

legend disabled; default: 30; ex: None

ws_tick_tick_minimum (nan): minimum space between consecutive ticks;

default: 10; ex: None

ws_ax_box_title (nan): right edge of axes to right edge of box title

text ; default: 10; ex: None

data.py

exception fivecentplots.data.AxisError(*args, **kwargs)
class fivecentplots.data.Data(plot_func='xy', **kwargs)
ax_limit_pad(**kwargs)

Set padding limits for axis

check_df(df)

Validate the dataframe

check_group_columns(group_type, col_names)

Check wrap/row/column grouping variables for errors

Parameters
  • group_type (str) – type of grouping (row, col, leg, wrap)

  • col_name (str) – name of the column by which to group

check_group_errors()

Check for common errors related to grouping keywords

check_group_matching(group1, group2)

Check to make sure certain group column values are not the same

Parameters
  • group1 (str) – attr name of first grouping column

  • group2 (str) – attr name of second grouping column

check_xyz(xyz)

Validate the name and column data provided for x, y, and/or z :param xyz: name of variable to check :type xyz: str

get_all_groups(df)

Generator to get all possible allowed groups of data

Parameters

df

Returns:

get_box_index_changes()

Make a DataFrame that shows when groups vals change; used for grouping labels

Parameters
  • df (pd.DataFrame) – grouping values

  • num_groups (int) – number of unique groups

Returns

new DataFrame with 1’s showing where group levels change for each row of df

get_conf_int(df, x, y, **kwargs)

Calculate and draw confidence intervals around a curve

Parameters
  • df

  • x

  • y

  • ax

  • color

  • kw

Returns:

get_data_range(ax, df, ir, ic)

Determine the min/max values for a given axis based on user inputs

Parameters
  • axis (str) – x, x2, y, y2, z

  • df (pd.DataFrame) – data table to use for range calculation

Returns

min, max tuple

get_data_ranges(ir, ic)

Get the data ranges

Parameters
  • ir (int) – subplot row index

  • ic (int) – subplot col index

get_data_ranges_bar(ir, ic)

Get the data ranges for bar plot data

Parameters
  • ir (int) – subplot row index

  • ic (int) – subplot col index

get_data_ranges_hist(ir, ic)

Get the data ranges

Parameters
  • ir (int) – subplot row index

  • ic (int) – subplot col index

get_df_figure()

Generator to subset the main DataFrame based on fig_item grouping

Parameters
  • fig_item (str) – figure grouping value

  • kw (dict) – kwargs dict

Returns

DataFrame subset

get_fig_groupings()

Determine the figure grouping levels

get_fit_data(ir, ic, df, x, y)

Make columns of fitted data

Parameters
  • df (pd.DataFrame) – main DataFrame

  • x (str) – x-column name

  • y (str) – y-column name

Returns

updated DataFrame and rsq (for poly fit only)

get_legend_groupings(df)

Determine the legend groupings

Parameters

df (pd.DataFrame) – data being plotted

Returns

updated kwargs dict

get_plot_data(df)

Generator to subset into discrete sets of data for each curve

Parameters

df (pd.DataFrame) – main DataFrame

Returns

subset

get_rc_groupings(df)

Determine the row and column or wrap grid groupings

Parameters

df (pd.DataFrame) – data being plotted; usually a subset of self.df_all

get_rc_subset(df, ranges=False)

Subset the data by the row/col values

Parameters

df (pd.DataFrame) – main DataFrame

Returns

subset DataFrame

get_stat_data(df, x, y)

Get a stat subset from input data

Parameters
  • df (pd.DataFrame) – input data

  • x (str) – x-column name

  • y (str) – y-column name

property groupers

Get all grouping values

see()

Prints a readable list of class attributes

swap_xy()

Swap the x and y axis

transform()

Transform x, y, or z data by unique group

exception fivecentplots.data.DataError(*args, **kwargs)
exception fivecentplots.data.GroupingError(*args, **kwargs)

layout.py

class fivecentplots.engines.layout.BaseLayout(plot_func, data, **kwargs)
add_box_labels(ir, ic, dd)
add_hvlines(ir, ic)
add_legend()
close()
format_legend_values()

Reformat legend values

from_list(base, attrs, name, kwargs)

Supports definition of object attributes for multiple axes using a list

Index 0 is always ‘x’ Index 1 is always ‘y’ Index 2 is for twinned axes

Parameters
  • base (Element) – object class

  • attrs (list) – attributes to check from the base class

  • name (str) – name of the base class

  • kwargs (dict) – keyword dict

Returns

updated kwargs

get_axes()

Return list of active axes

init_white_space(**kwargs)

Set the default spacing parameters (plot engine specific) :param kwargs: input args from user

make_figure()
make_kwargs(element, pop=[])
plot_box(ir, ic, data, **kwargs)

Plot boxplot data

Parameters
  • ir (int) – subplot row index

  • ic (int) – subplot column index

  • data (pd.DataFrame) – data to plot

Keyword Arguments

kwargs allowed by the plotter function selected (any) –

Returns

return the box plot object

plot_contour(ax, df, x, y, z, ranges)

Plot a contour plot

plot_heatmap(ax, df, x, y, z, ranges)

Plot a heatmap

Parameters
  • ax (mpl.axes) – current axes obj

  • df (pd.DataFrame) – data to plot

  • x (str) – x-column name

  • y (str) – y-column name

  • z (str) – z-column name

  • range (dict) – ax limits

plot_hist(ir, ic, iline, df, x, y, leg_name, data, zorder=1, line_type=None, marker_disable=False)
plot_line(ir, ic, x0, y0, x1=None, y1=None, **kwargs)

Plot a simple line

Parameters
  • ir (int) – subplot row index

  • ic (int) – subplot column index

  • x0 (float) – min x coordinate of line

  • x1 (float) – max x coordinate of line

  • y0 (float) – min y coordinate of line

  • y1 (float) – max y coordinate of line

  • kwargs – keyword args

plot_xy(ir, ic, iline, df, x, y, leg_name, twin, zorder=1, line_type=None, marker_disable=False)

Plot xy data

Parameters
  • x (np.array) – x data to plot

  • y (np.array) – y data to plot

  • color (str) – hex color code for line color (default=’#000000’)

  • marker (str) – marker char string (default=’o’)

  • points (bool) – toggle points on|off (default=False)

  • line (bool) – toggle plot lines on|off (default=True)

Keyword Arguments

kwargs allowed by the plotter function selected (any) –

Returns

return the line plot object

save(filename)
see()

Prints a readable list of class attributes

set_axes_colors(ir, ic)
set_axes_grid_lines(ir, ic)
set_axes_labels(ir, ic)
set_axes_ranges(ir, ic)
set_axes_rc_labels(ir, ic)
set_axes_scale(ir, ic)
set_axes_ticks(ir, ic)
set_figure_title()
set_label_text(data, **kwargs)

Set the default label text

Parameters

data (Data object) – current Data object

show(inline=True)
update_from_data(data)

Make properties updates from the Data class

update_wrap(data, kwargs)

Update figure props based on wrap selections

class fivecentplots.engines.layout.DF_Element(label='None', fcpp={}, others={}, **kwargs)
property on
class fivecentplots.engines.layout.Element(label='None', fcpp={}, others={}, **kwargs)
color_alpha(attr, alpha)

Add alpha to each color in the color list and make it a RepeatedList

property kwargs
property on
see()

Prints a readable list of class attributes

property size
property size_inches
property text
class fivecentplots.engines.layout.Legend_Element(label='None', fcpp={}, others={}, **kwargs)
add_value(key, curve, line_type_name)

Add a new curve to the values dataframe

Parameters
  • key (str) – string name for legend label

  • curve (obj) – reference to curve obj

  • line_type_name (str) – line type description

del_value(key)
set_default()
property size
property values
fivecentplots.engines.layout.custom_formatwarning(msg, *args, **kwargs)

mpl.py

class fivecentplots.engines.mpl.Layout(plot_func, data, **kwargs)
add_box_labels(ir, ic, data)
add_box_points(ir, ic, x, y)

Plot x y points with or without jitter

add_cbar(ax, contour)

Add a color bar

add_hvlines(ir, ic, df=None)

Add axhlines and axvlines

Parameters
  • ir (int) – subplot row index

  • ic (int) – subplot col index

  • df (pd.DataFrame) – current data

add_label(ir, ic, text='', position=None, rotation=0, size=None, fill_color='#ffffff', edge_color='#aaaaaa', edge_width=1, font='sans-serif', font_weight='normal', font_style='normal', font_color='#666666', font_size=14, offset=False, **kwargs)

Add a label to the plot

This function can be used for title labels or for group labels applied to rows and columns when plotting facet grid style plots.

Parameters
  • label (str) – label text

  • pos (tuple) – label position tuple of form (left, right, top, bottom)

  • is (old) –

  • axis (matplotlib.axes) – mpl axes object

  • rotation (int) – degrees of rotation

  • fillcolor (str) – hex color code for label fill (default=’#ffffff’)

  • edgecolor (str) – hex color code for label edge (default=’#aaaaaa’)

  • color (str) – hex color code for label text (default=’#666666’)

  • weight (str) – label font weight (use standard mpl weights like ‘bold’)

  • fontsize (int) – label font size (default=14)

add_legend()
Add a figure legend

TODO: add separate_label support?

add_text(ir, ic, text=None, element=None, offsetx=0, offsety=0, **kwargs)

Add a text box

close()

Close existing plot windows

fill_between_lines(ir, ic, iline, x, lcl, ucl, obj, twin=False)

Shade a region between two curves

Args:

get_axes_label_position()
Get the position of the axes labels

self.label_@.position –> [left, right, top, bottom]

get_element_sizes(data)

Calculate the actual rendered size of select elements by pre-plotting them. This is needed to correctly adjust the figure dimensions

Parameters

data (obj) – data class object

get_figure_size(data, **kwargs)

Determine the size of the mpl figure canvas in pixels and inches

get_legend_position()

Get legend position

get_rc_label_position()
Get option group label positions

self.label.position –> [left, right, top, bottom]

get_subplots_adjust()
Calculate the subplots_adjust parameters for the axes

self.axes.position –> [left, right, top, bottom]

get_title_position()
Calculate the title position

self.title.position –> [left, right, top, bottom]

make_figure(data, **kwargs)

Make the figure and axes objects

plot_bar(ir, ic, iline, df, x, y, leg_name, data, stacked, std, ngroups=1)

Plot bar graph

plot_box(ir, ic, data, **kwargs)

Plot boxplot data

Parameters
  • ir (int) – subplot row index

  • ic (int) – subplot column index

  • data (pd.DataFrame) – data to plot

Keyword Arguments

kwargs allowed by the plotter function selected (any) –

Returns

return the box plot object

plot_contour(ax, df, x, y, z, ranges)

Plot a contour plot

plot_heatmap(ax, df, x, y, z, ranges)

Plot a heatmap

Parameters
  • ax (mpl.axes) – current axes obj

  • df (pd.DataFrame) – data to plot

  • x (str) – x-column name

  • y (str) – y-column name

  • z (str) – z-column name

  • range (dict) – ax limits

plot_hist(ir, ic, iline, df, x, y, leg_name, data, zorder=1, line_type=None, marker_disable=False)
plot_line(ir, ic, x0, y0, x1=None, y1=None, **kwargs)

Plot a simple line

Parameters
  • ir (int) – subplot row index

  • ic (int) – subplot column index

  • x0 (float) – min x coordinate of line

  • x1 (float) – max x coordinate of line

  • y0 (float) – min y coordinate of line

  • y1 (float) – max y coordinate of line

  • kwargs – keyword args

plot_polygon(ir, ic, points, **kwargs)

Plot a polygon

Parameters
  • ir (int) – subplot row index

  • ic (int) – subplot column index

  • points (list of float) – points on the polygon

  • kwargs – keyword args

plot_xy(ir, ic, iline, df, x, y, leg_name, twin, zorder=1, line_type=None, marker_disable=False)

Plot xy data

Parameters
  • x (np.array) – x data to plot

  • y (np.array) – y data to plot

  • color (str) – hex color code for line color (default=’#000000’)

  • marker (str) – marker char string (default=’o’)

  • points (bool) – toggle points on|off (default=False)

  • line (bool) – toggle plot lines on|off (default=True)

Keyword Arguments

kwargs allowed by the plotter function selected (any) –

Returns

return the line plot object

save(filename, idx=0)

Save a plot window

Parameters

filename (str) – name of the file

see()

Prints a readable list of class attributes

set_axes_colors(ir, ic)

Set axes colors (fill, alpha, edge)

Parameters
  • ir (int) – subplot row index

  • ic (int) – subplot col index

set_axes_grid_lines(ir, ic)

Style the grid lines and toggle visibility

Parameters
  • ir (int) – subplot row index

  • ic (int) – subplot col index

set_axes_labels(ir, ic)

Set the axes labels

Parameters
  • ir (int) – current row index

  • ic (int) – current column index

  • kw (dict) – kwargs dict

set_axes_ranges(ir, ic, ranges)

Set the axes ranges

Parameters
  • ir (int) – subplot row index

  • ic (int) – subplot col index

  • limits (dict) – min/max axes limits for each axis

set_axes_ranges_hist(ir, ic, data, hist, iline)
Special range overrides for histogram plot

Needed to deal with the late computation of bin counts

Parameters
  • ir (int) – subplot row index

  • ic (int) – subplot col index

  • data (Data obj) – current data object

  • hist (mpl.hist obj) – result of hist plot

set_axes_rc_labels(ir, ic)

Add the row/column label boxes and wrap titles

Parameters
  • ir (int) – current row index

  • ic (int) – current column index

set_axes_scale(ir, ic)

Set the scale type of the axes

Parameters
  • ir (int) – subplot row index

  • ic (int) – subplot col index

Returns

axes scale type

set_axes_ticks(ir, ic)

Configure the axes tick marks

Parameters
  • ax (mpl axes) – current axes to scale

  • kw (dict) – kwargs dict

  • y_only (bool) – flag to access on the y-axis ticks

set_colormap(data, **kwargs)

Replace the color list with discrete values from a colormap

Parameters

data (Data object) –

set_figure_title()

Add a figure title

set_scientific(ax, idx=0)

Turn off scientific notation

Parameters

ax – axis to adjust

Returns

updated axise

show(filename=None)

Handle display of the plot window

update_subplot_spacing()

Update spacing for long labels

fivecentplots.engines.mpl.custom_formatwarning(msg, *args, **kwargs)
fivecentplots.engines.mpl.iterticks(ax)
fivecentplots.engines.mpl.mpl_get_ticks(ax, xon=True, yon=True)

Divine a bunch of tick and label parameters for mpl layouts

Parameters

ax (mpl.axes) –

Returns

dict of x and y ax tick parameters

fivecentplots.engines.mpl.mplc_to_hex(color, alpha=True)

Convert mpl color to hex

Parameters
  • color (tuple) – matplotlib style color code

  • alpha (boolean) – include or exclude the alpha value

bokeh.py

class fivecentplots.engines.bokeh.Layout(plot_func, data, **kwargs)
add_box_labels(ir, ic, dd)
add_hvlines(ir, ic, df=None)
add_legend()

Add a figure legend

add_text(ir, ic, text=None, element=None, offsetx=0, offsety=0, **kwargs)

Add a text box

get_element_sizes(data)
get_figure_size(data, **kwargs)
make_figure(data, **kwargs)

Make the figure and axes objects

plot_box(ir, ic, data, **kwargs)

Plot boxplot data

Parameters
  • ir (int) – subplot row index

  • ic (int) – subplot column index

  • data (pd.DataFrame) – data to plot

Keyword Arguments

kwargs allowed by the plotter function selected (any) –

Returns

return the box plot object

plot_contour(ax, df, x, y, z, ranges)

Plot a contour plot

plot_heatmap(ax, df, x, y, z, ranges)

Plot a heatmap

Parameters
  • ax (mpl.axes) – current axes obj

  • df (pd.DataFrame) – data to plot

  • x (str) – x-column name

  • y (str) – y-column name

  • z (str) – z-column name

  • range (dict) – ax limits

plot_hist(ir, ic, iline, df, x, y, leg_name, data, zorder=1, line_type=None, marker_disable=False)
plot_line(ir, ic, x0, y0, x1=None, y1=None, **kwargs)

Plot a simple line

Parameters
  • ir (int) – subplot row index

  • ic (int) – subplot column index

  • x0 (float) – min x coordinate of line

  • x1 (float) – max x coordinate of line

  • y0 (float) – min y coordinate of line

  • y1 (float) – max y coordinate of line

  • kwargs – keyword args

plot_xy(ir, ic, iline, df, x, y, leg_name, twin, zorder=1, line_type=None, marker_disable=False)

Plot xy data

Parameters
  • x (np.array) – x data to plot

  • y (np.array) – y data to plot

  • color (str) – hex color code for line color (default=’#000000’)

  • marker (str) – marker char string (default=’o’)

  • points (bool) – toggle points on|off (default=False)

  • line (bool) – toggle plot lines on|off (default=True)

Keyword Arguments

kwargs allowed by the plotter function selected (any) –

Returns

return the line plot object

save(filename, idx=0)
see()

Prints a readable list of class attributes

set_axes_colors(ir, ic)

Set axes colors (fill, alpha, edge)

Parameters
  • ir (int) – subplot row index

  • ic (int) – subplot col index

set_axes_grid_lines(ir, ic)

Style the grid lines and toggle visibility

Parameters
  • ir (int) – subplot row index

  • ic (int) – subplot col index

set_axes_labels(ir, ic)

Set the axes labels

Parameters
  • ir (int) – current row index

  • ic (int) – current column index

  • kw (dict) – kwargs dict

set_axes_ranges(ir, ic, ranges)

Set the axes ranges

Parameters
  • ir (int) – subplot row index

  • ic (int) – subplot col index

  • limits (dict) – min/max axes limits for each axis

set_axes_rc_labels(ir, ic)
set_axes_scale(ir, ic)
set_axes_scale2(ir, ic)

This appears to need to happen at instantiation of the figure

set_axes_ticks(ir, ic)
set_figure_title()

Add a figure title

show(filename=None)

Handle display of the plot window

fivecentplots.engines.bokeh.custom_formatwarning(msg, *args, **kwargs)
fivecentplots.engines.bokeh.fill_alpha(hexstr)

Break an 8-digit hex string into a hex color and a fractional alpha value

fivecentplots.engines.bokeh.format_marker(fig, marker)

Format the marker string to mathtext

utilities.py

exception fivecentplots.utilities.PlatformError
class fivecentplots.utilities.RepeatedList(values, name)
get(idx)
fivecentplots.utilities.ci(data, coeff=0.95)

Compute the confidence interval

Parameters

data (pd.Series) – raw data for computation

Returns

lower confidence interval, upper confidence interval returns np.nan if standard err < 0

fivecentplots.utilities.df_filter(df, filt_orig, drop_cols=False)

Filter the DataFrame

Due to limitations in pd.query, column names must not have spaces. This function will temporarily replace spaces in the column names with underscores, but the supplied query string must contain column names without any spaces

Parameters
  • df (pd.DataFrame) – DataFrame to filter

  • filt_orig (str) – query expression for filtering

  • drop_cols (bool) – drop filtered columns from results

Returns

filtered DataFrame

fivecentplots.utilities.df_summary(df, columns=[], exclude=[], multiple=False)

Return a summary table of unique conditions in a DataFrame

If more than one value exists, replace with “Multiple” or a string list of the values

Parameters
  • df (pd.DataFrame) – input DataFrame

  • columns (list) – list of column names to include; if empty, include all columns

  • exclude (list) – list of column names to ignore

  • multiple (bool) – toggle between showing discrete values or “Multiple” when a column contains more than one value

fivecentplots.utilities.df_unique(df)

Get column names with one unique value

Parameters

df (pd.DataFrame) – data to check

Returns

dict of col names and unique values

fivecentplots.utilities.dfkwarg(args, kwargs)

Add the DataFrame to kwargs

Parameters
  • args (tuple) – *args sent to plot

  • kwargs (dict) – **kwargs sent to plot

Returns

updated kwargs

fivecentplots.utilities.get_current_values(df, text, key='@')

Parse a string looking for text enclosed by ‘key’ and replace with the current value from the DataFrame

Parameters
  • df (pd.DataFrame) – DataFrame containing values we are looking for

  • text (str) – string to parse

  • key (str) – matching chars that enclose the value to replace from df

Returns

updated string

fivecentplots.utilities.get_decimals(value, max_places=4)

Get the number of decimal places of a float number excluding rounding errors

Parameters
  • value (int|float) – value to check

  • max_places (int) – maximum number of decimal places to check

Returns

number of decimal places

fivecentplots.utilities.get_mpl_version_dir()

Get the matplotlib version directory for test images based on the current version of mpl

fivecentplots.utilities.get_text_dimensions(text, **kwargs)
fivecentplots.utilities.img_compare(img1, img2, show=False)

Read two images and compare for difference by pixel This is an optional utility used only for developer tests, so the function will only work if opencv is installed :param img1: path to file #1 :type img1: str :param img2: path to file #2 :type img2: str :param show: display the difference :type show: bool

Returns

True/False of existence of differences

fivecentplots.utilities.kwget(dict1, dict2, val, default)

Augmented kwargs.get function

Parameters
  • dict1 (dict) – first dictionary to check for the value

  • dict2 (dict) – second dictionary to check for the value

  • val (str) – value to look for

  • default (multiple) – default value if not found in dict1 or dict2 keys

Returns

value to use

fivecentplots.utilities.nq(data, column='Value', **kwargs)

Normal quantile calculation

fivecentplots.utilities.plot_num(ir, ic, ncol)

Get the plot number based on grid location

fivecentplots.utilities.rectangle_overlap(r1, r2)

Determine if the bounds of two rectangles overlap

Parameters
  • r1 (list|tuple) – width, height, center point (x, y) of left rectangle

  • r2 (list|tuple) – width, height, center point (x, y) of right rectangle

Returns

True if overlap | False if not

fivecentplots.utilities.reload_defaults(theme=None)

Reload the fcp params

fivecentplots.utilities.set_save_filename(df, ifig, fig_item, fig_cols, layout, kwargs)

Build a filename based on the plot setup parameters

Parameters
  • df (pd.DataFrame) – input data used for the plot

  • fig_item (None | str) – unique figure item

  • fig_cols (None | str | list) – names of columns used to generate fi

  • layout (obj) – plot layout object

  • kwargs (dict) – input keyword args

Returns

str filename

fivecentplots.utilities.sigma(x)

Calculate the sigma range for a data set

Parameters

x (pd.Series | np.array) – data set

Returns

int value to use for +/- max sigma

fivecentplots.utilities.validate_list(items)

Make sure a list variable is actually a list and not a single string

Parameters

items (str|list) – values to check dtype

Returns

items as a list