    def scatter_plot(self, ax, topic_dims, t=None, ms_limits=True, **kwargs_plot):
        """ 2D or 3D scatter plot.

            :param axes ax: matplotlib axes (use Axes3D if 3D data)

            :param tuple topic_dims: list of (topic, dims) tuples, where topic is a string and dims is a list of dimensions to be plotted for that topic.

            :param int t: time indexes to be plotted

            :param dict kwargs_plot: argument to be passed to matplotlib's plot function, e.g. the style of the plotted points 'or'

            :param bool ms_limits: if set to True, automatically set axes boundaries to the sensorimotor boundaries (default: True)
        """
        plot_specs = {'marker': 'o', 'linestyle': 'None'}
        plot_specs.update(kwargs_plot)

        # t_bound = float('inf')
        # if t is None:
            # for topic, _ in topic_dims:
                # t_bound = min(t_bound, self.counts[topic])
            # t = range(t_bound)
        # data = self.pack(topic_dims, t)
        data = self.data_t(topic_dims, t)

        ax.plot(*(data.T), **plot_specs)
        if ms_limits:
            ax.axis(self.axes_limits(topic_dims))