content: #!/usr/bin/env python3
  # -*- coding: utf-8 -*-
  r"""
   #        .---.         .-----------
   #       /     \  __  /    ------
   #      / /     \(  )/    -----   (`-')  _ _(`-')              <-. (`-')_
   #     //////    '\/ `   ---      ( OO).-/( (OO ).->     .->      \( OO) )     .->
   #    //// / //  :   : ---      (,------. \    .'_ (`-')----. ,--./ ,--/  ,--.'  ,-.
   #   // /   /  / `\/ '--         |  .---' '`'-..__)( OO).-. ' |   \ |  | (`-')'.'  /
   #  //          //..\\          (|  '--.  |  |  ' |( _) | | | |  . '|  |)(OO \    /
   # ============UU====UU====      |  .--'  |  |  / : \|  |)| | |  |\    |  |  /   /)
   #             '//||\\`          |  `---. |  '-'  /  '  '-' ' |  | \   |  `-/   /`
   #               ''``            `------' `------'    `-----' `--'  `--'    `--'
   # ######################################################################################
   #
   # Author: edony - edonyzpc@gmail.com
   #
   # twitter : @edonyzpc
   #
   # Last modified: 2015-11-30 16:04
   #
   # Filename: 3point2plane.py
   #
   # Description: All Rights Are Reserved
   #
  """
  #import scipy as sp
  #import math as m
  import matplotlib as mpl
  import matplotlib.pyplot as plt
  from mpl_toolkits.mplot3d import Axes3D as Ax3
  #from scipy import stats as st
  #from matplotlib import cm
  import numpy as np
  
  class PyColor(object):
      """ This class is for colored print in the python interpreter!
      "F3" call Addpy() function to add this class which is defined
      in the .vimrc for vim Editor."""
      def __init__(self):
          self.self_doc = r"""
          STYLE: \033['display model';'foreground';'background'm
          DETAILS:
          FOREGROUND        BACKGOUND       COLOR
          ---------------------------------------
          30                40              black
          31                41              red
          32                42              green
          33                43              yellow
          34                44              blue
          35                45              purple
          36                46              cyan
          37                47              white
          DISPLAY MODEL    DETAILS
          -------------------------
          0                default
          1                highlight
          4                underline
          5                flicker
          7                reverse
          8                non-visiable
          e.g:
          \033[1;31;40m   <!--1-highlight;31-foreground red;40-background black-->
          \033[0m         <!--set all into default-->
          """
          self.warningcolor = '\033[0;31m'
          self.tipcolor = '\033[0;32m'
          self.endcolor = '\033[0m'
          self._newcolor = ''
      @property
      def new(self):
          """
          Customized Python Print Color.
          """
          return self._newcolor
      @new.setter
      def new(self, color_str):
          """
          New Color.
          """
          self._newcolor = color_str
      def disable(self):
          """
          Disable Color Print.
          """
          self.warningcolor = ''
          self.endcolor = ''
  
  fig = plt.figure('3 point into plane')
  ax = fig.gca(projection='3d')
  
  X = np.arange(0, 10, 0.1)
  Y = np.arange(0, 10, 0.1)
  X, Y = np.meshgrid(X, Y)
  Z = 5 - 0.3*X + 0.48*Y
  p1 = [5.3, 0.1, 5-0.3*5.3+0.48*0.1]
  p2 = [2.3, 0.7, 5-0.3*2.3+0.48*0.7]
  p3 = [8.3, 3.1, 5-0.3*8.3+0.48*3.1]
  
  ax.plot_surface(X, Y, Z, rstride=100, cstride=100, alpha=0.3)
  ax.scatter(p1[0], p1[1], p1[2])
  ax.scatter(p2[0], p2[1], p2[2])
  ax.scatter(p3[0], p3[1], p3[2])
  ax.set_xlabel('X')
  ax.set_ylabel('Y')
  ax.set_zlabel('Z')
  plt.show()
  