Could I ask about something that likely has a very simple solution? I have a list of XY coordinates for say 500 points that will become a scatterplot via ListPlot. I need to assign a colour to each point, using a list of labels (histology, risk, =85).

For a ListPlot, I'd have thought that something as simple as dropping a list of colours into a PlotStyle Directive would do the job. But the following line plots three blue points, rather than a Red, Green and Blue point.ListPlot[{{1, 1}, {2, 2}, {3, 3}},PlotStyle -> Directive[PointSize[0.02], {Red, Green, Blue}]]

You have two issues. The first is that you misunderstand Directive. ADirective represent a single style, both semantically and practically. It cannever represent a group styles.

The second is that ListPlot assigns colors on a per dataset basis, not perpoint. So assuming you wish to repeat cyclically and each point needs its owncolor, you can do something like