class_docstr: Generic abstract class for the graphers
class_docstr_tok: ["Generic","abstract","class","for","the","graphers"]
code: def render(self, output=None):
      if output:
          try:
              self.image.save(output)
          except AttributeError:
              print(
                  "Pixel %s x %d"
                  % (self.image_width, self.image_height)
              )
              self.image.savefig(output, dpi=341)
          return
      return self.image
  
imports: import math
  import numpy
  from timeside.core import Processor, implements, interfacedoc, abstract
  from timeside.core.processor import FixedSizeInputAdapter
  from timeside.core.api import IGrapher
  from timeside.plugins.grapher.utils import smooth, im_watermark, normalize
  import timeside.plugins.analyzer
label_desc: Use image node_id 6 for calling the Grapher obj's underlying member method code with example usage: obj.render(output) and returns: self