Assume there are three groups of 2-dimensional coordinates

    data = RandomVariate[NormalDistribution[#, .25], {15, 2}] & /@ Range[3];

Is there a way to `ListPlot` these data points just like

    ListPlot[data, PlotStyle -> {Red, Blue, Green}]

 ![][1]

but instead of the dots with the result of an integer-valued function, e.g. `Round[Norm[#]]&`, shown in the according colour?

I already had a look at <a href="https://mathematica.stackexchange.com/questions/7408/listplot-with-plotmarkers-determined-by-point">this</a> and <a href="https://mathematica.stackexchange.com/questions/1854/adding-labels-to-points-in-listplot">that</a> question, but wasn't able to modify the answers to obtain the desired result.
  [1]: https://i.sstatic.net/CV9BD.png