New way ideas:
Procs
proc plot[T: SomeFloat](sur: var Surface; x, y: openArray[T]; col: Color = Viridis.orange)
proc plot[T: SomeFloat](sur: var Surface; x: openArray[T]; y: proc (x: T): T; col: Color = Viridis.orange)
proc plot(x, y: openArray[float]; lncolor: Color = Viridis.blue; bgColor: Color = White; origin: tuple[x0, y0: float] = (0.0, 0.0); padding = 20; grid: bool = false; box: bool = true; ticks = true; size = [432, 288]): Surface {...}{.raises: [], tags: [].}
- Inits a surface and append points (x,y) to it. Returns the surface.