code: def _post_update_stream_plot(self, stream_vis):
      import matplotlib.pyplot as plt  # delayed import due to matplotlib threading issue
  
      utils.debug_log(
          "Plot updated", stream_vis.stream.stream_name, verbosity=5
      )
  
      if self.layout_dirty:
          # do not do tight_layout() call on every update
          # that would jumble up the graphs! it should only called
          # once each time there is change in layout
          self.figure.tight_layout()
          self.layout_dirty = False
  
      # below forces redraw and it was helpful to
      # repaint even if there was error in interval loop
      # but it does work in native UX and not in Jupyter Notebook
      # self.figure.canvas.draw()
      # self.figure.canvas.flush_events()
  
      if self._use_hbox and VisBase.get_ipython():
          self.widget.clear_output(wait=True)
          with self.widget:
              plt.show(self.figure)
  
file_path: tensorwatch/tensorwatch/mpl/base_mpl_plot.py
imports: from ..vis_base import VisBase
  import sys, logging
  from abc import abstractmethod
  from ..None import utils
label_desc: Use image node_id 7 for calling the BaseMplPlot obj's underlying member method code with example usage: obj._post_update_stream_plot(stream_vis) without return types