Skip to content

Commit

Permalink
Merge pull request #982 from dstl/metricplotter
Browse files Browse the repository at this point in the history
Remove hardcoded Metrics from MetricPlotter
  • Loading branch information
sdhiscocks committed Apr 17, 2024
2 parents c29b661 + 7e39294 commit 44127d2
Showing 1 changed file with 8 additions and 14 deletions.
22 changes: 8 additions & 14 deletions stonesoup/plotter.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
from .types import detection
from .types.groundtruth import GroundTruthPath
from .types.array import StateVector
from .types.metric import SingleTimeMetric
from .types.state import State, StateMutableSequence
from .types.update import Update

Expand Down Expand Up @@ -666,20 +667,7 @@ class MetricPlotter(ABC):
def __init__(self):
self.fig = None
self.axes = None
self.plottable_metrics = ["OSPA distances",
"GOSPA Metrics",
"SIAP Completeness at times",
"SIAP Ambiguity at times",
"SIAP Spuriousness at times",
"SIAP Position Accuracy at times",
"SIAP Velocity Accuracy at times",
"SIAP ID Completeness at times",
"SIAP ID Correctness at times",
"SIAP ID Ambiguity at times",
"PCRB Metrics",
"Sum of Covariance Norms Metric",
"Mean of Covariance Norms Metric"
]
self.plottable_metrics = list()

def plot_metrics(self, metrics, generator_names=None, metric_names=None,
combine_plots=True, **kwargs):
Expand Down Expand Up @@ -711,6 +699,12 @@ def plot_metrics(self, metrics, generator_names=None, metric_names=None,
: :class:`matplotlib.pyplot.figure`
Figure containing subplots displaying all plottable metrics.
"""
for metric_dict in metrics.values():
for metric_name, metric in metric_dict.items():
if isinstance(metric.value, List) \
and all(isinstance(x, SingleTimeMetric) for x in metric.value):
self.plottable_metrics.append(metric_name)

metrics_kwargs = dict(linestyle="-")
metrics_kwargs.update(kwargs)

Expand Down

0 comments on commit 44127d2

Please sign in to comment.