GMT (Generic Mapping Tools) is the most commonly used software in geophysics community for plotting high-quality beautiful figures, especially maps.
GMT installation: http://gmt.soest.hawaii.edu/?id=Installing
GMT official documentation: http://gmt.soest.hawaii.edu/doc/5.4.5/index.html
Introduction to GMT4 by Andrew Newman (a geophysics professor at Georgia Tech): http://geophysics.eas.gatech.edu/classes/Intro_GMT/
Here is a homework to help you learn how to plot a simple map in GMT (GMT-training.tar.gz)
What you need to plot with GMT in this homework:
The attached tarball contains fours files:
Note: GMT comes with coastline and some national boundary data, which you can use by calling the pscoast module of GMT. You will need the global topography/bathymetry data to plot the topography map, which is also available from GMT FTP site but not included in the GMT package due to the large data size. You can download the global topography/bathymetry data in different resolutions from ftp://ftp.soest.hawaii.edu/gmt/data/. earth_relief_02m.grd means the grid spacing of the data is 2 arc minute, which is enough for this homework map. Remember to download earth_relief_02m.grd and put it in the same directory as your GMT script.