Line plots¶
Inherits from PlotChecker
.
-
class
plotchecker.
LinePlotChecker
(axis)[source]¶ A plot checker for line plots.
Parameters: axis :
matplotlib.axes.Axes
objectA set of matplotlib axes (e.g. obtained through
plt.gca()
)-
find_permutation
(attr_name, attr_vals)[source]¶ Find the order of the lines such that the given attribute (given by
attr_name
andattr_vals
) has values in the same order as those that were plotted.This function is useful if you are not sure what order the lines were plotted in. If, for example, you know there should be one red line, one blue line, and one green line—but not the order—you can use this method with
'color'
as the attribute name and['red', 'green', 'blue']
as the attribute values. Then, any subsequent assertions will use the permutation found by this function.Parameters: attr_name : string
The name of the attribute to use for finding the permutation.
attr_vals :
The expected values of the attribute
Examples
Let’s say the instructions are to create three lines: one red line with data
xr
andyr
; one blue line with dataxb
andyb
, and one green line with dataxg
andyg
. Here is one way that plot might be created:fig, ax = plt.subplots() ax.plot(xg, yg, 'g-') ax.plot(xb, yb, 'b-') ax.plot(xr, yr, 'r-')
However, the lines could have been plotted in any order. So, for example, the following would fail, because it assumes the order is ‘red’, ‘green’, and ‘blue’:
pc = LinePlotChecker(ax) pc.assert_x_data_equal([xr, xg, xb]) # fails
To avoid having to check every permutation, you can use this
find_permutation
method to do it for you:pc = LinePlotChecker(ax) pc.find_permutation('color', ['r', 'g', 'b']) pc.assert_x_data_equal([xr, xg, xb]) # passes
-
assert_num_lines
(num_lines)[source]¶ Assert that the plot has the given number of lines.
Parameters: num_lines : int
-
x_data
¶ The x-values of the plotted data (list of arrays, one array per line).
-
assert_x_data_equal
(x_data)[source]¶ Assert that the given x-data is equivalent to the plotted
x_data
.Parameters: x_data : list of array-like
The expected x-data. The number of elements should be equal to the (expected) number of plotted lines.
-
y_data
¶ The y-values of the plotted data (list of arrays, one array per line).
-
assert_y_data_equal
(y_data)[source]¶ Assert that the given y-data is equivalent to the plotted
y_data
.Parameters: y_data : list of array-like
The expected y-data. The number of elements should be equal to the (expected) number of plotted lines.
-
colors
¶ The colors of the plotted lines. Each color is a RGB 3-tuple.
-
assert_colors_equal
(colors)[source]¶ Assert that the given colors are equivalent to the plotted
colors
.Parameters: colors : list of expected line colors
Each color can be either a matplotlib color name (e.g.
'r'
or'red'
), a hexcode (e.g."#FF0000"
), a 3-tuple RGB color, or a 4-tuple RGBA color.
-
alphas
¶ The alpha values of the plotted lines.
-
assert_alphas_equal
(alphas)[source]¶ Assert that the given alpha values are equivalent to the plotted
alphas
.Parameters: alphas : list of floats
The expected alpha values, with length equal to the (expected) number of plotted lines.
-
linewidths
¶ The line widths of the plotted lines.
-
assert_linewidths_equal
(linewidths)[source]¶ Assert that the given line widths are equivalent to the plotted
linewidths
.Parameters: linewidths : list of numbers
The expected linewidths, with length equal to the (expected) number of plotted lines.
-
markerfacecolors
¶ The colors of the marker faces for the plotted lines.
-
assert_markerfacecolors_equal
(markerfacecolors)[source]¶ Assert that the given marker face colors are equivalent to the plotted
markerfacecolors
.Parameters: markerfacecolors : list of expected marker face colors
Each color can be either a matplotlib color name (e.g.
'r'
or'red'
), a hexcode (e.g."#FF0000"
), a 3-tuple RGB color, or a 4-tuple RGBA color.
-
markeredgecolors
¶ The colors of the marker edges for the plotted lines.
-
assert_markeredgecolors_equal
(markeredgecolors)[source]¶ Assert that the given marker edge colors are equivalent to the plotted
markeredgecolors
.Parameters: markeredgecolors : list of expected marker edge colors
Each color can be either a matplotlib color name (e.g.
'r'
or'red'
), a hexcode (e.g."#FF0000"
), a 3-tuple RGB color, or a 4-tuple RGBA color.
-
markeredgewidths
¶ The widths of the marker edges for the plotted lines.
-
assert_markeredgewidths_equal
(markeredgewidths)[source]¶ Assert that the given marker edge widths are equivalent to the plotted
markeredgewidths
.Parameters: markeredgewidths : list of expected marker edge widths
The expected edge widths, with length equal to the (expected) number of plotted lines.
-
markersizes
¶ The marker sizes for the plotted lines.
-
assert_markersizes_equal
(markersizes)[source]¶ Assert that the given marker sizes are equivalent to the plotted
markersizes
.Parameters: markersizes : list of expected marker sizes
The expected marker sizes, with length equal to the (expected) number of plotted lines.
-
markers
¶ The marker types for the plotted lines.
-
assert_markers_equal
(markers)[source]¶ Assert that the given markers are equivalent to the plotted
markers
.Parameters: markers : list of strings
The expected markers, with length equal to the (expected) number of plotted lines.
-
labels
¶ The legend labels of the plotted lines.
-