anchor.diff:    FCanvas.Pen.Color := Color;
     px := X2P(x);
     py := Y2P(y);
  -  FCanvas.Rectangle(px-1, py+1, px+1, py-1);
  +  FCanvas.Rectangle(px-1, py+1, px+1, py-1)
   end;
   
   procedure TMolChart.DrawLine(x0, y0, x1, y1: Double; Color: TColor; PenWidth: Integer);
  
positive.code:     procedure DrawPoint(x, y: Double; Color: TColor);
      procedure DrawLine(x0, y0, x1, y1: Double; Color: TColor; PenWidth: Integer);
      procedure DrawVec(x, y: fvec; Color: TColor; PenWidth: Integer);
      procedure DrawChart(ref: string; Width, Height: Integer);
    end;
  
  implementation
  
negative.code:   xf := (x1-x0)/(R.Right-R.Left);
    lny0 := ln(y0);
    lny1 := ln(y1);
    yf := (lny1-lny0)/(R.Top-R.Bottom)
  end;
  
  function TMolChart.X2P(x: Double): Integer;
  {X scale value to chart pixel value}
  begin
    Result := Trunc(R.Left+(x-x0)/xf)
  end;
  
  function TMolChart.Y2P(y: Double): Integer;
  {Y scale value to chart pixel value}
  begin
    Result := Trunc(R.Bottom+(ln(y)-lny0)/yf)
  end;
  
  function TMolChart.P2X(p: Integer): Double;
  