class_docstr: Generic abstract class for the graphers
class_docstr_tok: ["Generic","abstract","class","for","the","graphers"]
docstr: vertical anti-aliasing at y1 and y2 
docstr_tok: ["vertical","anti-aliasing","at","y1","and","y2"]
code: def draw_anti_aliased_pixels(self, x, y1, y2, color):
      """vertical anti-aliasing at y1 and y2"""
  
      y_max = max(y1, y2)
      y_max_int = int(y_max)
      alpha = y_max - y_max_int
  
      if (
          alpha > 0.0
          and alpha < 1.0
          and y_max_int + 1 < self.image_height
      ):
          current_pix = self.pixel[int(x), y_max_int + 1]
          r = int((1 - alpha) * current_pix[0] + alpha * color[0])
          g = int((1 - alpha) * current_pix[1] + alpha * color[1])
          b = int((1 - alpha) * current_pix[2] + alpha * color[2])
          self.pixel[x, y_max_int + 1] = (r, g, b)
  
      y_min = min(y1, y2)
      y_min_int = int(y_min)
      alpha = 1.0 - (y_min - y_min_int)
  
      if alpha > 0.0 and alpha < 1.0 and y_min_int - 1 >= 0:
          current_pix = self.pixel[x, y_min_int - 1]
          r = int((1 - alpha) * current_pix[0] + alpha * color[0])
          g = int((1 - alpha) * current_pix[1] + alpha * color[1])
          b = int((1 - alpha) * current_pix[2] + alpha * color[2])
          self.pixel[x, y_min_int - 1] = (r, g, b)
  
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 10 for calling the Grapher obj's underlying member method code with example usage: obj.draw_anti_aliased_pixels(x, y1, y2, color) without return types