fiftyone.core.plots.matplotlib#
Matplotlib plots.
Functions:
|
Plots a confusion matrix. |
|
Plots the given regression results. |
|
Plots a precision-recall (PR) curve. |
|
Plots a set of per-class precision-recall (PR) curves. |
|
Plots a receiver operating characteristic (ROC) curve. |
|
Plots the given lines(s) data. |
|
Generates an interactive scatterplot of the given points. |
|
Generates an interactive scatterplot of the given location coordinates with a map rendered in the background of the plot. |
Classes:
|
Base class for interactive matplotlib plots. |
|
Interactive wrapper for a matplotlib collection. |
- fiftyone.core.plots.matplotlib.plot_confusion_matrix(confusion_matrix, labels, show_values=True, show_colorbar=True, cmap=None, title=None, xticks_rotation=45.0, values_format=None, ax=None, figsize=None)#
Plots a confusion matrix.
- Parameters:
confusion_matrix β a
num_true x num_predsconfusion matrixlabels β a
max(num_true, num_preds)array-like of class labelsshow_values (True) β whether to show counts in the confusion matrix cells
show_colorbar (True) β whether to show a colorbar
cmap (None) β a colormap recognized by
matplotlibtitle (None) β a title for the plot
xticks_rotation (45.0) β a rotation for the x-tick labels. Can be numeric degrees, βverticalβ, βhorizontalβ, or None
values_format (None) β a format string like
".2g"or"d"to use to format the cell countsax (None) β a matplotlib axis to plot in
figsize (None) β a
(width, height)for the figure, in inches
- Returns:
a matplotlib figure
- fiftyone.core.plots.matplotlib.plot_regressions(ytrue, ypred, samples=None, ids=None, labels=None, sizes=None, classes=None, gt_field=None, pred_field=None, best_fit_label=None, marker_size=None, cmap=None, title=None, ax=None, figsize=None, style=None, **kwargs)#
Plots the given regression results.
- Parameters:
ytrue β an array-like of ground truth values
ypred β an array-like of predicted values
samples (None) β the
fiftyone.core.collections.SampleCollectionwhose data is being visualizedids (None) β an array-like of sample or frame IDs corresponding to the regressions. If not provided but
samplesare provided, the appropriate IDs will be extracted from the sampleslabels (None) β
data to use to color the points. Can be any of the following:
the name of a sample field or
embedded.field.nameofsamplesfrom which to extract numeric or string valuesa
fiftyone.core.expressions.ViewExpressiondefining numeric or string values to compute fromsamplesviafiftyone.core.collections.SampleCollection.values()an array-like of numeric or string values
a list of array-lies of numeric or string values, if
link_fieldrefers to frames
sizes (None) β
data to use to scale the sizes of the points. Can be any of the following:
the name of a sample field or
embedded.field.nameofsamplesfrom which to extract numeric valuesa
fiftyone.core.expressions.ViewExpressiondefining numeric values to compute fromsamplesviafiftyone.core.collections.SampleCollection.values()an array-like of numeric values
a list of array-likes of numeric or string values, if
link_fieldrefers to frames
classes (None) β a list of classes whose points to plot. Only applicable when
labelscontains stringsgt_field (None) β the name of the ground truth field
pred_field (None) β the name of the predictions field
best_fit_label (None) β a custom legend label for the best fit line
marker_size (None) β the marker size to use. If
sizesare provided, this value is used as a reference to scale the sizes of all pointscmap (None) β a colormap recognized by
matplotlibtitle (None) β a title for the plot
ax (None) β a matplotlib axis to plot in
figsize (None) β a
(width, height)for the figure, in inchesstyle (None) β a style to use for the plot
**kwargs β optional keyword arguments for matplotlibβs
scatter()
- Returns:
a matplotlib figure
- fiftyone.core.plots.matplotlib.plot_pr_curve(precision, recall, label=None, title=None, ax=None, figsize=None, style=None, **kwargs)#
Plots a precision-recall (PR) curve.
- Parameters:
precision β an array-like of precision values
recall β an array-like of recall values
label (None) β a label for the curve
title (None) β a title for the plot
ax (None) β a matplotlib axis to plot in
figsize (None) β a
(width, height)for the figure, in inchesstyle (None) β a style to use for the plot
**kwargs β optional keyword arguments for matplotlibβs
plot()
- Returns:
a matplotlib figure
- fiftyone.core.plots.matplotlib.plot_pr_curves(precisions, recall, classes, title=None, ax=None, figsize=None, style=None, **kwargs)#
Plots a set of per-class precision-recall (PR) curves.
- Parameters:
precisions β a
num_classes x num_recallsarray-like of per-class precision valuesrecall β an array-like of recall values
classes β the list of classes
title (None) β a title for the plot
ax (None) β a matplotlib axis to plot in
figsize (None) β a
(width, height)for the figure, in inchesstyle (None) β a style to use for the plot
**kwargs β optional keyword arguments for matplotlibβs
plot()
- Returns:
a matplotlib figure
- fiftyone.core.plots.matplotlib.plot_roc_curve(fpr, tpr, roc_auc=None, title=None, ax=None, figsize=None, style=None, **kwargs)#
Plots a receiver operating characteristic (ROC) curve.
- Parameters:
fpr β an array-like of false positive rates
tpr β an array-like of true positive rates
roc_auc (None) β the area under the ROC curve
title (None) β a title for the plot
ax (None) β a matplotlib axis to plot in
figsize (None) β a
(width, height)for the figure, in inchesstyle (None) β a style to use for the plot
**kwargs β optional keyword arguments for matplotlibβs
plot()
- Returns:
a matplotlib figure
- fiftyone.core.plots.matplotlib.lines(x=None, y=None, samples=None, ids=None, link_field=None, sizes=None, labels=None, colors=None, marker_size=None, title=None, xlabel=None, ylabel=None, ax=None, ax_equal=False, figsize=None, style=None, buttons=None, **kwargs)#
Plots the given lines(s) data.
You can attach plots generated by this method to an App session via its
fiftyone.core.session.Session.plotsattribute, which will automatically sync the sessionβs view with the currently selected points in the plot. To enable this functionality, you must passsamplesto this method.You can use the
sizesparameter to scale the sizes of the points.- Parameters:
x (None) β
the x data to plot. Can be any of the following:
an array-like of values
a
num_lines x narray-like or list of lengthnum_linesof array-likes of values for multiple line tracesthe name of a sample field or
embedded.field.nameofsamplesfrom which to extract values for a single linethe name of a frame field or
frames.embedded.field.nameofsamplesfrom which to extract values for per-sample line tracesa
fiftyone.core.expressions.ViewExpressionthat resolves to a list (one line plot) or list of lists (multiple line plots) of numeric values to compute fromsamplesviafiftyone.core.collections.SampleCollection.values()
y (None) β
the y data to plot. Can be any of the following:
an array-like of values
a
num_lines x narray-like or list of lengthnum_linesof array-likes of values for multiple line tracesthe name of a sample field or
embedded.field.nameofsamplesfrom which to extract values for a single linethe name of a frame field or
frames.embedded.field.nameofsamplesfrom which to extract values for per-sample line tracesa
fiftyone.core.expressions.ViewExpressionthat resolves to a list (one line plot) or list of lists (multiple line plots) of numeric values to compute fromsamplesviafiftyone.core.collections.SampleCollection.values()
samples (None) β the
fiftyone.core.collections.SampleCollectionwhose data is being visualizedids (None) β an array-like of IDs of same shape as
y. If not provided butsamplesare provided, the appropriate IDs will be extracted from the sampleslink_field (None) β
a field of
sampleswhose data corresponds toy. Can be any of the following:None, if the line data correspond to samples (single trace) or frames (multiple traces)"frames", if the line data correspond to frames (multiple traces). This option exists only for consistency with other plotting methods; in practice, it will be automatically inferred whenever multiple traces are being plottedthe name of a
fiftyone.core.labels.Labelfield, if the line data correspond to the labels in this field
sizes (None) β
data to use to scale the sizes of the points. Can be any of the following:
an array-like of numeric values of same shape as
ythe name of a sample field (single trace) or frame field (multiple traces) from which to extract numeric values
a
fiftyone.core.expressions.ViewExpressiondefining sample-level (single trace) or frame-level (multiple traces) numeric values to compute fromsamplesviafiftyone.core.collections.SampleCollection.values()
labels (None) β a label or list of labels for the line traces
colors (None) β a list of colors recognized by
matplotlibto use for the line traces. See https://matplotlib.org/stable/tutorials/colors/colormaps.html for more informationmarker_size (None) β the marker size to use. If
sizesare provided, this value is used as a reference to scale the sizes of all pointstitle (None) β a title for the plot
xlabel (None) β an x-axis label
ylabel (None) β a y-axis label
ax (None) β a matplotlib axis to plot in
ax_equal (False) β whether to set
axis("equal")figsize (None) β a
(width, height)for the figure, in inchesstyle (None) β a style to use for the plot
buttons (None) β a list of
(label, icon_image, callback)tuples defining buttons to add to the plot**kwargs β optional keyword arguments for matplotlibβs
plot()andscatter()
- Returns:
one of the following
an
InteractiveCollection, when IDs are availablea matplotlib figure, otherwise
- fiftyone.core.plots.matplotlib.scatterplot(points, samples=None, ids=None, link_field=None, labels=None, sizes=None, classes=None, marker_size=None, cmap=None, title=None, ax=None, ax_equal=False, figsize=None, style=None, buttons=None, **kwargs)#
Generates an interactive scatterplot of the given points.
You can attach plots generated by this method to an App session via its
fiftyone.core.session.Session.plotsattribute, which will automatically sync the sessionβs view with the currently selected points in the plot. To enable this functionality, you must passsamplesto this method.This method supports 2D or 3D visualizations, but interactive point selection is only available in 2D.
You can use the
labelsparameters to define a coloring for the points, and you can use thesizesparameter to scale the sizes of the points.- Parameters:
points β a
num_points x num_dimsarray-like of pointssamples (None) β the
fiftyone.core.collections.SampleCollectionwhose data is being visualizedids (None) β an array-like of IDs corresponding to the points. If not provided but
samplesare provided, the appropriate IDs will be extracted from the sampleslink_field (None) β
a field of
sampleswhose data corresponds topoints. Can be any of the following:None, if the points correspond to samples
"frames", if the points correspond to framesthe name of a
fiftyone.core.labels.Labelfield, if the points correspond to the labels in this field
labels (None) β
data to use to color the points. Can be any of the following:
the name of a sample field or
embedded.field.nameofsamplesfrom which to extract numeric or string valuesa
fiftyone.core.expressions.ViewExpressiondefining numeric or string values to compute fromsamplesviafiftyone.core.collections.SampleCollection.values()an array-like of numeric or string values
a list of array-likes of numeric or string values, if
link_fieldrefers to frames and/or a label list field likefiftyone.core.labels.Detections
sizes (None) β
data to use to scale the sizes of the points. Can be any of the following:
the name of a sample field or
embedded.field.nameofsamplesfrom which to extract numeric valuesa
fiftyone.core.expressions.ViewExpressiondefining numeric values to compute fromsamplesviafiftyone.core.collections.SampleCollection.values()an array-like of numeric values
a list of array-likes of numeric or string values, if
link_fieldrefers to frames and/or a label list field likefiftyone.core.labels.Detections
classes (None) β a list of classes whose points to plot. Only applicable when
labelscontains stringsmarker_size (None) β the marker size to use. If
sizesare provided, this value is used as a reference to scale the sizes of all pointscmap (None) β a colormap recognized by
matplotlibtitle (None) β a title for the plot
ax (None) β a matplotlib axis to plot in
ax_equal (False) β whether to set
axis("equal")figsize (None) β a
(width, height)for the figure, in inchesstyle (None) β a style to use for the plot
buttons (None) β a list of
(label, icon_image, callback)tuples defining buttons to add to the plot**kwargs β optional keyword arguments for matplotlibβs
scatter()
- Returns:
one of the following
an
InteractiveCollection, for 2D points and when IDs are availablea matplotlib figure, otherwise
- fiftyone.core.plots.matplotlib.location_scatterplot(locations=None, samples=None, ids=None, labels=None, sizes=None, classes=None, map_type='satellite', show_scale_bar=False, api_key=None, marker_size=None, cmap=None, title=None, ax=None, ax_equal=False, figsize=None, style=None, buttons=None, **kwargs)#
Generates an interactive scatterplot of the given location coordinates with a map rendered in the background of the plot.
Location data is specified via the
locationsparameter.You can attach plots generated by this method to an App session via its
fiftyone.core.session.Session.plotsattribute, which will automatically sync the sessionβs view with the currently selected points in the plot. To enable this functionality, you must passsamplesto this method.You can use the
labelsparameters to define a coloring for the points, and you can use thesizesparameter to scale the sizes of the points.- Parameters:
locations (None) β
the location data to plot. Can be any of the following:
None, in which case
samplesmust have a singlefiftyone.core.labels.GeoLocationfield whosepointattribute contains location dataa
num_locations x 2array-like of(longitude, latitude)coordinatesthe name of a
fiftyone.core.labels.GeoLocationfield ofsampleswith(longitude, latitude)coordinates in itspointattribute
samples (None) β the
fiftyone.core.collections.SampleCollectionwhose data is being visualizedids (None) β an array-like of IDs corresponding to the locations. If not provided but
samplesare provided, the appropriate IDs will be extracted from the sampleslabels (None) β
data to use to color the points. Can be any of the following:
the name of a sample field or
embedded.field.nameofsamplesfrom which to extract numeric or string valuesa
fiftyone.core.expressions.ViewExpressiondefining numeric or string values to compute fromsamplesviafiftyone.core.collections.SampleCollection.values()an array-like of numeric or string values
sizes (None) β
data to use to scale the sizes of the points. Can be any of the following:
the name of a sample field or
embedded.field.nameofsamplesfrom which to extract numeric valuesa
fiftyone.core.expressions.ViewExpressiondefining numeric values to compute fromsamplesviafiftyone.core.collections.SampleCollection.values()an array-like of numeric values
classes (None) β a list of classes whose points to plot. Only applicable when
labelscontains stringsmap_type ("satellite") β the map type to render. Supported values are
("roadmap", "satellite", "hybrid", "terrain")show_scale_bar (False) β whether to render a scale bar on the plot
api_key (None) β a Google Maps API key to use
marker_size (None) β the marker size to use. If
sizesare provided, this value is used as a reference to scale the sizes of all pointscmap (None) β a colormap recognized by
matplotlibtitle (None) β a title for the plot
ax (None) β a matplotlib axis to plot in
ax_equal (False) β whether to set
axis("equal")figsize (None) β a
(width, height)for the figure, in inchesstyle (None) β a style to use for the plot
buttons (None) β a list of
(label, icon_image, callback)tuples defining buttons to add to the plot**kwargs β optional keyword arguments for matplotlibβs
scatter()
- Returns:
one of the following
an
InteractiveCollection, if IDs are availablea matplotlib figure, otherwise
- class fiftyone.core.plots.matplotlib.InteractiveMatplotlibPlot(figure, **kwargs)#
Bases:
InteractivePlotBase class for interactive matplotlib plots.
- Parameters:
figure β a
matplotlib.figure.Figure**kwargs β keyword arguments for the
fiftyone.core.plots.base.InteractivePlotconstructor
Attributes:
Whether this plot supports automatic updates in response to session changes.
A
fiftyone.core.collections.SampleCollectiondefining the initial view from which to derive selection views when points are selected in the plot.Whether this plot is currently connected.
Whether this plot is currently disconnected.
Whether this plot is currently frozen.
The link type between this plot and a connected session.
A list of IDs of the currently selected points.
The current selection mode of the plot.
Methods:
show()Shows this plot.
save(path[,Β dpi])Saves the plot as an image.
connect()Connects this plot, if necessary.
Disconnects the plot, if necessary.
freeze()Freezes the plot, replacing it with a static image.
recommend_link_type([label_field,Β samples])Recommends a link type for the given info.
register_disconnect_callback(callback)Registers a callback that can disconnect this plot from a
SessionPlotconnected to it.register_selection_callback(callback)Registers a selection callback for this plot.
register_sync_callback(callback)Registers a callback that can sync this plot with a
SessionPlotconnected to it.reset()Resets the plot to its default state.
select_ids(ids[,Β view])Selects the points with the given IDs in this plot.
- property supports_session_updates#
Whether this plot supports automatic updates in response to session changes.
- show()#
Shows this plot.
- save(path, dpi=None, **kwargs)#
Saves the plot as an image.
- Parameters:
path β the path to write the image
dpi (None) β a resolution in dots per inch
**kwargs β keyword arguments for
matplotlib.pyplot.savefig
- connect()#
Connects this plot, if necessary.
- disconnect()#
Disconnects the plot, if necessary.
- freeze()#
Freezes the plot, replacing it with a static image.
The plot will also be disconnected.
Only applicable in notebook contexts.
- property init_view#
A
fiftyone.core.collections.SampleCollectiondefining the initial view from which to derive selection views when points are selected in the plot.This view will also be shown when the plot is in its default state (no selection).
- property is_connected#
Whether this plot is currently connected.
- property is_disconnected#
Whether this plot is currently disconnected.
- property is_frozen#
Whether this plot is currently frozen.
- property link_type#
The link type between this plot and a connected session.
- static recommend_link_type(label_field=None, samples=None)#
Recommends a link type for the given info.
- Parameters:
label_field (None) β the label field, if any
samples (None) β the
fiftyone.core.collections.SampleCollection, if known
- Returns:
a
(link_type, label_fields, selection_mode, init_fcn)tuple
- register_disconnect_callback(callback)#
Registers a callback that can disconnect this plot from a
SessionPlotconnected to it.The typical use case for this function is to serve as the callback for a
disconnectbutton on the plot.- Parameters:
callback β a function with no arguments
- register_selection_callback(callback)#
Registers a selection callback for this plot.
Selection callbacks are functions that take a single argument containing the list of currently selected IDs.
If a selection callback is registered, this plot should invoke it each time their selection is updated.
- Parameters:
callback β a selection callback
- register_sync_callback(callback)#
Registers a callback that can sync this plot with a
SessionPlotconnected to it.The typical use case for this function is to serve as the callback for a
syncbutton on the plot.- Parameters:
callback β a function with no arguments
- reset()#
Resets the plot to its default state.
- select_ids(ids, view=None)#
Selects the points with the given IDs in this plot.
- Parameters:
ids β a list of IDs, or None to reset the plot to its default state
view (None) β the
fiftyone.core.view.DatasetViewcorresponding to the given IDs, if available
- property selected_ids#
A list of IDs of the currently selected points.
An empty list means all points are deselected, and None means default state (nothing selected or unselected).
If the plot is not connected, returns None.
- property selection_mode#
The current selection mode of the plot.
This property controls how the current view is updated in response to updates from
InteractivePlotinstances that are linked to labels or frames.When
link_typeis"frames", the supported values are:"select": show video samples with labels only for the selected frames"match": show unfiltered video samples containing at least one selected frame"frames": show only the selected frames in a frames view
When
link_typeis"labels", the supported values are:"select": show only the selected labels"match": show unfiltered samples containing at least one selected label"patches": show the selected labels in a patches view
Note
In order to use
"patches"selection mode, you must have provided aninit_fcnwhen constructing this plot that defines how to create the base patches view. This usually involvesto_patches()orto_evaluation_patches()Note
In order to use
"frames"selection mode, you must have provided aninit_fcnwhen constructing this plot that defines how to create the base frames view. This usually involvesto_frames()
- class fiftyone.core.plots.matplotlib.InteractiveCollection(collection, ids=None, buttons=None, alpha_other=0.25, expand_selected=3.0, click_tolerance=0.02, **kwargs)#
Bases:
InteractiveMatplotlibPlotInteractive wrapper for a matplotlib collection.
This class enables collection points to be lasso-ed and click selected.
The currently selected points are given a visually distinctive style, and you can modify your selection by either clicking on individual points or drawing a lasso around new points.
When the shift key is pressed, new selections are added to the selected set, or subtracted if the new selection is a subset of the current selection.
- Parameters:
collection β a
matplotlib.collections.Collectionto select points fromids (None) β an array-like of IDs corresponding to the points in
collectionbuttons (None) β a list of
(label, icon_image, callback)tuples defining buttons to add to the plotalpha_other (0.25) β a transparency value for unselected points
expand_selected (3.0) β expand the size of selected points by this multiple
click_tolerance (0.02) β a click distance tolerance in
[0, 1]when clicking individual points**kwargs β keyword arguments for the
fiftyone.core.plots.base.InteractivePlotconstructor
Methods:
connect()Connects this plot, if necessary.
Disconnects the plot, if necessary.
freeze()Freezes the plot, replacing it with a static image.
recommend_link_type([label_field,Β samples])Recommends a link type for the given info.
register_disconnect_callback(callback)Registers a callback that can disconnect this plot from a
SessionPlotconnected to it.register_selection_callback(callback)Registers a selection callback for this plot.
register_sync_callback(callback)Registers a callback that can sync this plot with a
SessionPlotconnected to it.reset()Resets the plot to its default state.
save(path[,Β dpi])Saves the plot as an image.
select_ids(ids[,Β view])Selects the points with the given IDs in this plot.
show()Shows this plot.
Attributes:
A
fiftyone.core.collections.SampleCollectiondefining the initial view from which to derive selection views when points are selected in the plot.Whether this plot is currently connected.
Whether this plot is currently disconnected.
Whether this plot is currently frozen.
The link type between this plot and a connected session.
A list of IDs of the currently selected points.
The current selection mode of the plot.
Whether this plot supports automatic updates in response to session changes.
- connect()#
Connects this plot, if necessary.
- disconnect()#
Disconnects the plot, if necessary.
- freeze()#
Freezes the plot, replacing it with a static image.
The plot will also be disconnected.
Only applicable in notebook contexts.
- property init_view#
A
fiftyone.core.collections.SampleCollectiondefining the initial view from which to derive selection views when points are selected in the plot.This view will also be shown when the plot is in its default state (no selection).
- property is_connected#
Whether this plot is currently connected.
- property is_disconnected#
Whether this plot is currently disconnected.
- property is_frozen#
Whether this plot is currently frozen.
- property link_type#
The link type between this plot and a connected session.
- static recommend_link_type(label_field=None, samples=None)#
Recommends a link type for the given info.
- Parameters:
label_field (None) β the label field, if any
samples (None) β the
fiftyone.core.collections.SampleCollection, if known
- Returns:
a
(link_type, label_fields, selection_mode, init_fcn)tuple
- register_disconnect_callback(callback)#
Registers a callback that can disconnect this plot from a
SessionPlotconnected to it.The typical use case for this function is to serve as the callback for a
disconnectbutton on the plot.- Parameters:
callback β a function with no arguments
- register_selection_callback(callback)#
Registers a selection callback for this plot.
Selection callbacks are functions that take a single argument containing the list of currently selected IDs.
If a selection callback is registered, this plot should invoke it each time their selection is updated.
- Parameters:
callback β a selection callback
- register_sync_callback(callback)#
Registers a callback that can sync this plot with a
SessionPlotconnected to it.The typical use case for this function is to serve as the callback for a
syncbutton on the plot.- Parameters:
callback β a function with no arguments
- reset()#
Resets the plot to its default state.
- save(path, dpi=None, **kwargs)#
Saves the plot as an image.
- Parameters:
path β the path to write the image
dpi (None) β a resolution in dots per inch
**kwargs β keyword arguments for
matplotlib.pyplot.savefig
- select_ids(ids, view=None)#
Selects the points with the given IDs in this plot.
- Parameters:
ids β a list of IDs, or None to reset the plot to its default state
view (None) β the
fiftyone.core.view.DatasetViewcorresponding to the given IDs, if available
- property selected_ids#
A list of IDs of the currently selected points.
An empty list means all points are deselected, and None means default state (nothing selected or unselected).
If the plot is not connected, returns None.
- property selection_mode#
The current selection mode of the plot.
This property controls how the current view is updated in response to updates from
InteractivePlotinstances that are linked to labels or frames.When
link_typeis"frames", the supported values are:"select": show video samples with labels only for the selected frames"match": show unfiltered video samples containing at least one selected frame"frames": show only the selected frames in a frames view
When
link_typeis"labels", the supported values are:"select": show only the selected labels"match": show unfiltered samples containing at least one selected label"patches": show the selected labels in a patches view
Note
In order to use
"patches"selection mode, you must have provided aninit_fcnwhen constructing this plot that defines how to create the base patches view. This usually involvesto_patches()orto_evaluation_patches()Note
In order to use
"frames"selection mode, you must have provided aninit_fcnwhen constructing this plot that defines how to create the base frames view. This usually involvesto_frames()
- show()#
Shows this plot.
- property supports_session_updates#
Whether this plot supports automatic updates in response to session changes.