Color function for ListPlot

You could do that using Point and VertexColors:

data = {{1, 2, 0}, {2, 1, 0.5}, {3, 1.3, 0.6}, {4, 1.1, 0.8}};
Graphics[
 Point[data[[All, ;; 2]],VertexColors -> (Hue /@ data[[All, 3]])],
 Frame -> True, 
 ImageSize -> 400
]

enter image description here

This should be very good in terms of memory as you only have one Point object.


data = RandomReal[{0, 10}, {100, 3}];

rng = MinMax@data[[All, 3]];

Legended[
 Graphics[
  {AbsolutePointSize[5],
   {ColorData["Rainbow"][Rescale[#[[3]], rng]],
      Tooltip[Point[#[[1 ;; 2]]], #[[3]]]} & /@
    data},
  Frame -> True,
  ImageSize -> 400,
  FrameLabel -> (Style[#, 14] & /@ {"a", "b"})],
 BarLegend[{"Rainbow", rng}]]

enter image description here