The first one is the background, with geographical and tectonic information. It will be a reference related to that background, i.e. a paper printed in a Geological journal, a Geological map and so on.
The second data set is represented by the beachballs.
For relatively moderate or major earthquakes, routinely with the magnitude Mw exceeding 5.0, the focal mechanisms are evaluated by Global Centroid Moment Tensor Project. You may download the beachballs into a certain area and time interval from their site.
Other institutions provide beachballs too, like GFZ Potsdam, ETH Zurich, IPGP France and so on. The beachballs are also summarised at International Seismological Center ISC. Enter on the corresponding sites and see in detail.
For small earthquakes, beachballs are evaluated by local or regional seismological agencies, routinely by using the polarities of the first arrivals. There are classic codes to do that, like the "focmec" code. You may find that code in the SEISAN package developed at Bergen and widely used.
Finally, you have to assemble the two data sets. You may do that with various codes, as indicated above. I would add also Generic Mapping Tool, widely used in Seismology or simply CorelDraw.
you can also use many ways to calculate the focal mechanism, such like HASH, using the ratio of the P and S amplitude with first arrival polarities. Or you could inverse the focal mechanism using synthetic full waveforms, many papers have provide these. For plotting, you could use obspy or GMT as well.