Matplotlib scatter points with random color and legend

Noob here but I’ve searched all over and cannot find any hints to help me with what I’m trying to do. I’ve written a python program to create a world ranking for marathon swimmers, and based on the database of results, a ranking can be generated for any given day. I want to create a not-crappy-looking chart showing a given athlete’s ranking progression over time with a step chart, and overlay points to represent days that they actually competed, and what the competition was.