I am a big fan of the open-source Generic Mapping Tools (GMT) and use them to create many of my maps and figures. There is a harsh learning curve, so I recommend starting with a working script and editing it to fit your needs. Here is an example GMT script that plots the active and inactive stations in the _US-TA seismic network using the IRIS DMC webservices to access station locations and start/end dates.
#!/bin/bash
#Script to plot a simple map of Alaska and the Lower 48 along with TA stations, both currently operating and previously operating under the network code _US-TA only.
#Call in terminal window with: sh KA_us_TA_17_11_13.sh
#Last edited by Kasey Aderhold November 13, 2017
gmtset PS_PAGE_ORIENTATION landscape
gmtset MAP_FRAME_TYPE plain
#Set file names, one for the postscript and one for the converted .pdf file. Both will be date-stamped with current date.
OUTFILE1=$(date “+%-m-%-d-%-y_TA.ps”)
OUTFILE2=$(date “+%-m-%-d-%-y_TA.pdf”)
#Set appropriate boundaries and projection size
BOUNDS=-180/-64/21/73
PROJ=M7i
#Get all stations that have operated under the _US-TA virtual network at the IRIS DMC, save as file named temp, then remove the header line and save as _US-TA.txt
tail +2 temp > _US-TA.txt; rm temp;
#Get all stations that have operated under the _US-TA virtual network at the IRIS DMC and are currently operating.
tail +2 temp > _US-TA_active.txt; rm temp;
#Create map, blank with no topography, use previously defined boundaries and projection.
pscoast -V -R$BOUNDS -J$PROJ -Dl -W0.25p,150 -Swhite -Gwhite -B0 -A500 -N1/0.25p,150 -N2/0.25p,150 -K > $OUTFILE1
#Plot _US-TA stations using text files created with previous calls to IRIS DMC webservices. Plot inactive stations as grey triangles and active as red circles.
#This call to awk divides the text file into columns based on the | character and then sends the 4th and 3rd columns (lat and lon) to the plotting call in gmt.
awk -F’|’ ‘{print $4,$3}’ _US-TA.txt | gmt psxy -V -R -J -St0.1c -Ggrey -W0.25p -P -O -K >> $OUTFILE1
awk -F’|’ ‘{print $4,$3}’ _US-TA_active.txt | gmt psxy -V -R -J -Sc0.1c -Gred -W0.25p -P -O -K >> $OUTFILE1
#Date stamp and label map
date “+-179 72.75 v. %-m/%-d/%-y _US-TA Stations” | pstext -V -R$BOUNDS -J$PROJ -F+f16p -F+jTL -P -O -K >> $OUTFILE1
gmtset FONT_ANNOT_PRIMARY 10p
#Add legend
pslegend -V -R$BOUNDS -J$PROJ -F+p1p -F -D-152.5/45.5/2.1i/.6i/TC -C0.1i/0.1i -L1.2 -B0 -O -K <<END>> $OUTFILE1
#
G -0.075i
L 10 – L _US-TA Network Stations
S 0.1i c 0.31c red 0.75p 0.38i Active _US-TA Station
S 0.1i t 0.31c grey 0.75p 0.4i Inactive _US-TA Station
END
#Create pdf version of map
ps2pdf $OUTFILE1 $OUTFILE2