Install and load the following R packages.

library(maptools)
library(RColorBrewer)
library(classInt)
library(rgdal)

First download the shapefile and save it on your computer. Copy the path to the directory containing the shapefile.

Set the working directory to the directory where you have save the shapefile. Session > Set Working Directory > Choose Directory. Read in the shape file for the Bay Area.

## set the working directory.  Windows
# setwd("C:\\Users\\Eric A. Suess\\Downloads\\bayarea_zipcodes\\")
## set the working directory.  Mac or Linux
setwd("~/classes/2016-2017/02 Winter 2017/Stat 6610/Activity/BayArea")
## load the shapefile
zip <- readOGR("bayarea_zipcodes.shp")
OGR data source with driver: ESRI Shapefile 
Source: "bayarea_zipcodes.shp", layer: "bayarea_zipcodes"
with 187 features
It has 5 fields

Add the median household incomes for each zipcode to the .shp file.

med.income <- c(55995, 54448, 50520, 43846, 50537, 67705, 45142, 36518, NA, 65938, 50500, 61022, 65959, 17188, 53881, 66970, 35699, 76194, 63777, 63838, 66010, 48523, 70758, 41002, 60082, 48672, 61429, 60402, 75707, 58333, 60769, 60375, 76627, 68515, 64485, 60971, 60833, 54732, 60804, 33962, 57601, 43649, 59889, NA, 61494, 67824, 64429, 82528, 101555, 96658, 50300, 41573, 75747, 53750, 56905, 85479, 77455, 64389, 91283, 119832, 103791, 100590, 85109, 88184, 57153, 34951, 51418, 38613, 43640, 19750, 139997, 39290, NA, 76808, 98525, 106492, 68112, 68853, 77952, 34398, 75026, 33556, NA, 109771, 142459, 80959, 21124, 49066, 95588, 55321, 20034, 57976, 40990, 73571, 84710, 43444, 32273, 56569, 54174, 105393, 51896, 31542, 33152, 54879, 88976, 14609, 61609, 61776, 22351, 31131, 47288, NA, 63983, 60733, 29181, 75727, 61362, 53795, 76044, 34755, 66627, 37146, 92644, 87855, 95313, 50888, 55000, 57629, 54342, 77122, 44723, 64534, 65658, 60711, 57214, 54594, 48523, 90107, 69014, 49452, 72288, 56973, 81923, 61289, 71863, 61939, 0, 82735, 68067, 82188, 70026, 101977, 55112, 84442, 82777, 82796, 92989, 67152, 68121, 69350, 104958, 49279, 80973, 89016, 96677, 89572, 64256, 84565, 16250, 64839, 200001, 82072, 58304, 66807, 97758, 68721, 77539, 41313, NA, 82314, 164479, 69087, 145425, NA, 71056, 128853, 84856)
zip$INCOME <- med.income

Select color palette and the number colors (levels of income) to represent on the map.

colors <- brewer.pal(9, "YlOrRd")

Set breaks for the 9 colors.

brks <- classIntervals(zip$INCOME, n=9, style="quantile")
var has missing values, omitted in finding classes
brks <- brks$brks

Plot the map. Add a title. Add a legend.

plot(zip, col=colors[findInterval(zip$INCOME, brks,all.inside=TRUE)])
title(paste ("SF Bay Area Median Household Income"))
legend(x=6298809, y=2350000, legend=leglabs(round(brks)), fill=colors, bty="n", x.intersp = .8, y.intersp = .8)

LS0tCnRpdGxlOiAiUGxvdHRpbmcgTWFwcyB3aXRoIFIiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KCkluc3RhbGwgYW5kIGxvYWQgdGhlIGZvbGxvd2luZyBSIHBhY2thZ2VzLgoKYGBge3J9CmxpYnJhcnkobWFwdG9vbHMpCmxpYnJhcnkoUkNvbG9yQnJld2VyKQpsaWJyYXJ5KGNsYXNzSW50KQpsaWJyYXJ5KHJnZGFsKQpgYGAKCkZpcnN0IGRvd25sb2FkIHRoZSBzaGFwZWZpbGUgYW5kIHNhdmUgaXQgb24geW91ciBjb21wdXRlci4gIENvcHkgdGhlIHBhdGggdG8gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBzaGFwZWZpbGUuCgpTZXQgdGhlIHdvcmtpbmcgZGlyZWN0b3J5IHRvIHRoZSBkaXJlY3Rvcnkgd2hlcmUgeW91IGhhdmUgc2F2ZSB0aGUgc2hhcGVmaWxlLiAgU2Vzc2lvbiA+IFNldCBXb3JraW5nIERpcmVjdG9yeSA+IENob29zZSBEaXJlY3RvcnkuICBSZWFkIGluIHRoZSBzaGFwZSBmaWxlIGZvciB0aGUgQmF5IEFyZWEuCgpgYGB7cn0KIyMgc2V0IHRoZSB3b3JraW5nIGRpcmVjdG9yeS4gIFdpbmRvd3MKIyBzZXR3ZCgiQzpcXFVzZXJzXFxFcmljIEEuIFN1ZXNzXFxEb3dubG9hZHNcXGJheWFyZWFfemlwY29kZXNcXCIpCgojIyBzZXQgdGhlIHdvcmtpbmcgZGlyZWN0b3J5LiAgTWFjIG9yIExpbnV4CnNldHdkKCJ+L2NsYXNzZXMvMjAxNi0yMDE3LzAyIFdpbnRlciAyMDE3L1N0YXQgNjYxMC9BY3Rpdml0eS9CYXlBcmVhIikKCiMjIGxvYWQgdGhlIHNoYXBlZmlsZQp6aXAgPC0gcmVhZE9HUigiYmF5YXJlYV96aXBjb2Rlcy5zaHAiKQpgYGAKCkFkZCB0aGUgbWVkaWFuIGhvdXNlaG9sZCBpbmNvbWVzIGZvciBlYWNoIHppcGNvZGUgdG8gdGhlIC5zaHAgZmlsZS4KCmBgYHtyfQptZWQuaW5jb21lIDwtIGMoNTU5OTUsIDU0NDQ4LCA1MDUyMCwgNDM4NDYsIDUwNTM3LCA2NzcwNSwgNDUxNDIsIDM2NTE4LCBOQSwgNjU5MzgsIDUwNTAwLCA2MTAyMiwgNjU5NTksIDE3MTg4LCA1Mzg4MSwgNjY5NzAsIDM1Njk5LCA3NjE5NCwgNjM3NzcsIDYzODM4LCA2NjAxMCwgNDg1MjMsIDcwNzU4LCA0MTAwMiwgNjAwODIsIDQ4NjcyLCA2MTQyOSwgNjA0MDIsIDc1NzA3LCA1ODMzMywgNjA3NjksIDYwMzc1LCA3NjYyNywgNjg1MTUsIDY0NDg1LCA2MDk3MSwgNjA4MzMsIDU0NzMyLCA2MDgwNCwgMzM5NjIsIDU3NjAxLCA0MzY0OSwgNTk4ODksIE5BLCA2MTQ5NCwgNjc4MjQsIDY0NDI5LCA4MjUyOCwgMTAxNTU1LCA5NjY1OCwgNTAzMDAsIDQxNTczLCA3NTc0NywgNTM3NTAsIDU2OTA1LCA4NTQ3OSwgNzc0NTUsIDY0Mzg5LCA5MTI4MywgMTE5ODMyLCAxMDM3OTEsIDEwMDU5MCwgODUxMDksIDg4MTg0LCA1NzE1MywgMzQ5NTEsIDUxNDE4LCAzODYxMywgNDM2NDAsIDE5NzUwLCAxMzk5OTcsIDM5MjkwLCBOQSwgNzY4MDgsIDk4NTI1LCAxMDY0OTIsIDY4MTEyLCA2ODg1MywgNzc5NTIsIDM0Mzk4LCA3NTAyNiwgMzM1NTYsIE5BLCAxMDk3NzEsIDE0MjQ1OSwgODA5NTksIDIxMTI0LCA0OTA2NiwgOTU1ODgsIDU1MzIxLCAyMDAzNCwgNTc5NzYsIDQwOTkwLCA3MzU3MSwgODQ3MTAsIDQzNDQ0LCAzMjI3MywgNTY1NjksIDU0MTc0LCAxMDUzOTMsIDUxODk2LCAzMTU0MiwgMzMxNTIsIDU0ODc5LCA4ODk3NiwgMTQ2MDksIDYxNjA5LCA2MTc3NiwgMjIzNTEsIDMxMTMxLCA0NzI4OCwgTkEsIDYzOTgzLCA2MDczMywgMjkxODEsIDc1NzI3LCA2MTM2MiwgNTM3OTUsIDc2MDQ0LCAzNDc1NSwgNjY2MjcsIDM3MTQ2LCA5MjY0NCwgODc4NTUsIDk1MzEzLCA1MDg4OCwgNTUwMDAsIDU3NjI5LCA1NDM0MiwgNzcxMjIsIDQ0NzIzLCA2NDUzNCwgNjU2NTgsIDYwNzExLCA1NzIxNCwgNTQ1OTQsIDQ4NTIzLCA5MDEwNywgNjkwMTQsIDQ5NDUyLCA3MjI4OCwgNTY5NzMsIDgxOTIzLCA2MTI4OSwgNzE4NjMsIDYxOTM5LCAwLCA4MjczNSwgNjgwNjcsIDgyMTg4LCA3MDAyNiwgMTAxOTc3LCA1NTExMiwgODQ0NDIsIDgyNzc3LCA4Mjc5NiwgOTI5ODksIDY3MTUyLCA2ODEyMSwgNjkzNTAsIDEwNDk1OCwgNDkyNzksIDgwOTczLCA4OTAxNiwgOTY2NzcsIDg5NTcyLCA2NDI1NiwgODQ1NjUsIDE2MjUwLCA2NDgzOSwgMjAwMDAxLCA4MjA3MiwgNTgzMDQsIDY2ODA3LCA5Nzc1OCwgNjg3MjEsIDc3NTM5LCA0MTMxMywgTkEsIDgyMzE0LCAxNjQ0NzksIDY5MDg3LCAxNDU0MjUsIE5BLCA3MTA1NiwgMTI4ODUzLCA4NDg1NikKemlwJElOQ09NRSA8LSBtZWQuaW5jb21lCmBgYAoKU2VsZWN0IGNvbG9yIHBhbGV0dGUgYW5kIHRoZSBudW1iZXIgY29sb3JzIChsZXZlbHMgb2YgaW5jb21lKSB0byByZXByZXNlbnQgb24gdGhlIG1hcC4KCmBgYHtyfQoKY29sb3JzIDwtIGJyZXdlci5wYWwoOSwgIllsT3JSZCIpCgpgYGAKClNldCBicmVha3MgZm9yIHRoZSA5IGNvbG9ycy4gCgpgYGB7cn0KCmJya3MgPC0gY2xhc3NJbnRlcnZhbHMoemlwJElOQ09NRSwgbj05LCBzdHlsZT0icXVhbnRpbGUiKQpicmtzIDwtIGJya3MkYnJrcwpgYGAKClBsb3QgdGhlIG1hcC4gIEFkZCBhIHRpdGxlLiAgQWRkIGEgbGVnZW5kLgoKYGBge3J9CnBsb3QoemlwLCBjb2w9Y29sb3JzW2ZpbmRJbnRlcnZhbCh6aXAkSU5DT01FLCBicmtzLGFsbC5pbnNpZGU9VFJVRSldKQp0aXRsZShwYXN0ZSAoIlNGIEJheSBBcmVhIE1lZGlhbiBIb3VzZWhvbGQgSW5jb21lIikpCmxlZ2VuZCh4PTYyOTg4MDksIHk9MjM1MDAwMCwgbGVnZW5kPWxlZ2xhYnMocm91bmQoYnJrcykpLCBmaWxsPWNvbG9ycywgYnR5PSJuIiwgeC5pbnRlcnNwID0gLjgsIHkuaW50ZXJzcCA9IC44KQpgYGAKCgo=