code: def roll(self, data):
      data = data.reshape(data.shape[0], 1, 1)
  
      self._ctex[:, self.ptr] = data
      self._color_fn["shift"] = (self.ptr + 1) / self._shape[1]
      self.ptr = (self.ptr + 1) % self._shape[1]
      self.update()
  
file_path: vispy/examples/demo/scene/oscilloscope.py
imports: from __future__ import division
  import threading
  import atexit
  import numpy
  from vispy import app, scene, gloo, visuals
  from vispy.util.filter import gaussian_filter
label_desc: Use image node_id 3 for calling the ScrollingImage obj's underlying member method code with example usage: obj.roll(data) without return types