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
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)
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

kwargs
on
see()

Prints a readable list of class attributes

size
size_inches
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()
size
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)

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

Parameters:
  • img1 (str) – path to file #1
  • img2 (str) – path to file #2
Returns:

True/False of existance 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