From 1640ea5fa11d8843e28c545381fc35ffc29abc67 Mon Sep 17 00:00:00 2001 From: Philipp Holl Date: Sun, 24 Nov 2024 18:08:20 +0100 Subject: [PATCH] [vis] Fix plotting sparse points --- phi/vis/_vis_base.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/phi/vis/_vis_base.py b/phi/vis/_vis_base.py index 892c7bc1a..a665ba4da 100644 --- a/phi/vis/_vis_base.py +++ b/phi/vis/_vis_base.py @@ -588,13 +588,18 @@ def _limits(center: Tensor, half: Tensor, is_log: Union[bool, Tensor]): def only_stored_elements(f: Field) -> Field: - if not math.is_sparse(f.points): + if not math.is_sparse(f.points) and not math.is_sparse(f.values): return f - elements = f.sampled_elements.at(f.points._values) + if math.is_sparse(f.points): + points = math.stored_values(f.points) + else: + mat = f.values != 0 + points = math.stored_values(f.points * mat) + elements = f.sampled_elements.at(points) if math.is_sparse(f.values): - values = f.values._values + values = math.stored_values(f.values) else: - values = f.values[f.points._indices] + values = f.values[math.stored_indices(f.points)] return Field(elements, values, math.extrapolation.NONE)