class_docstr: A grid of :class:`PlotlyViewPlot` instances.
  
  Args:
      plots: a :class:`PlotlyViewPlot` or iterable of :class:`PlotlyViewPlot`
          instances
      shape (None): the ``(rows, cols)`` shape to use for the grid
      hgap (None): a horizontal spacing between the subplots, in ``[0, 1]``
      vgap (None): a vertical spacing between the subplots, in ``[0, 1]``
      init_view (None): an optional initial
          :class:`fiftyone.core.collections.SampleCollection` to load
      **kwargs: optional parameters for
          :meth:`plotly:plotly.graph_objects.Figure.update_layout`
code: def _get_trace_updates(self, view, agg_results=None):
      if agg_results is None:
          agg_results = itertools.repeat(None)
      else:
          agg_iter = iter(agg_results)
          agg_results = []
          for agg_len in self._agg_lengths:
              if agg_len is None:
                  _agg_results = None
              else:
                  _agg_results = [
                      next(agg_iter) for _ in range(agg_len)
                  ]
  
              agg_results.append(_agg_results)
  
      updates = []
      for plot, _agg_results in zip(self.plots, agg_results):
          update = plot._get_trace_updates(
              view, agg_results=_agg_results
          )
          updates.extend(update)
  
      return updates
  
imports: import itertools
  from operator import itemgetter
  import numpy
  import eta.core.utils
  import plotly.subplots
  import plotly.graph_objects
  import fiftyone.core.aggregations
  from .base import ViewPlot
  from .plotly import PlotlyWidgetMixin
label_desc: Use image node_id 5 for calling the ViewGrid obj's underlying member method code with example usage: obj._get_trace_updates(view, agg_results) and returns: updates