title: How to add legend for regional map with a legend describing associated labels using ggplot2?
body: <p>SpatialPoly Data: <a href="https://www.dropbox.com/s/4x7kkragmnl6tkk/Morocco_adm1.zip" rel="noreferrer">SpatialData</a></p>
  
  <p>Yield Data: <a href="https://www.dropbox.com/s/rzlfuqxwzkqwgbg/Morocco_Yield.csv" rel="noreferrer">Yield Data</a></p>
  
  <p>Code:</p>
  
  <pre><code>    ## Loading packages
      library(rgdal)
      library(plyr)
      library(maps)
      library(maptools)
      library(mapdata)
      library(ggplot2)
      library(RColorBrewer)
      library(foreign)  
      library(sp)
  
      ## Loading shapefiles and .csv files
      #Morocco &lt;- readOGR(dsn=".", layer="Morocco_adm0")
      MoroccoReg &lt;- readOGR(dsn=".", layer="Morocco_adm1")
      MoroccoYield &lt;- read.csv(file = "F:/Purdue University/RA_Position/PhD_ResearchandDissert/PhD_Draft/Country-CGE/RMaps_Morocco/Morocco_Yield.csv", header=TRUE, sep=",", na.string="NA", dec=".", strip.white=TRUE)
  
      ## Reorder the data in the shapefile based on the category variable "ID_1" and change to dataframe
      MoroccoReg &lt;- MoroccoReg[order(MoroccoReg$ID_1), ]
      MoroccoReg.df &lt;- fortify(MoroccoReg)
  
      ## Add the yield impacts column to shapefile from the .csv file by "ID_1"
      ## Note that in the .csv file, I just added the column "ID_1" to match it with the shapefile
      MoroccoReg.df &lt;- cbind(MoroccoReg.df,MoroccoYield,by = 'ID_1')
  
      ## Check the structure and contents of shapefile
      attributes(MoroccoReg.df)
  
      ## Define new theme for map
      ## I have found this function on the website
      theme_map &lt;- function (base_size = 12, base_family = "") {
      theme_gray(base_size = base_size, base_family = base_family) %+replace% 
      theme(
      axis.line=element_blank(),
      axis.text.x=element_blank(),
      axis.text.y=element_blank(),
      axis.ticks=element_blank(),
      axis.ticks.length=unit(0.3, "lines"),
      axis.ticks.margin=unit(0.5, "lines"),
      axis.title.x=element_blank(),
      axis.title.y=element_blank(),
      legend.background=element_rect(fill="white", colour=NA),
      legend.key=element_rect(colour="white"),
      legend.key.size=unit(1.5, "lines"),
      legend.position="right",
      legend.text=element_text(size=rel(1.2)),
      legend.title=element_text(size=rel(1.4), face="bold", hjust=0),
      panel.background=element_blank(),
      panel.border=element_blank(),
      panel.grid.major=element_blank(),
      panel.grid.minor=element_blank(),
      panel.margin=unit(0, "lines"),
      plot.background=element_blank(),
      plot.margin=unit(c(1, 1, 0.5, 0.5), "lines"),
      plot.title=element_text(size=rel(1.8), face="bold", hjust=0.5),
      strip.background=element_rect(fill="grey90", colour="grey50"),
      strip.text.x=element_text(size=rel(0.8)),
      strip.text.y=element_text(size=rel(0.8), angle=-90) 
      )   
      }
  
      ## Plotting 
  
      MoroccoRegMap1 &lt;- ggplot(data = MoroccoReg.df, aes(long, lat, group = group)) 
      MoroccoRegMap1 &lt;- MoroccoRegMap1 + geom_polygon(aes(fill = A2Med_noCO2))
      MoroccoRegMap1 &lt;- MoroccoRegMap1 + geom_path(colour = 'gray', linestyle = 2)
      #MoroccoRegMap &lt;- MoroccoRegMap + scale_fill_gradient(low = "#CC0000",high = "#006600")
      MoroccoRegMap1 &lt;- MoroccoRegMap1 + scale_fill_gradient2(name = "%Change in yield",low = "#CC0000",mid = "#FFFFFF",high = "#006600")
      MoroccoRegMap1 &lt;- MoroccoRegMap1 + labs(title="SRES_A2, noCO2 Effect")
      MoroccoRegMap1 &lt;- MoroccoRegMap1 + coord_equal() + theme_map()
      MoroccoRegMap1
  </code></pre>
  
  <p>Results:</p>
  
  <p><img src="https://i.stack.imgur.com/lut1u.png" alt="Map"></p>
  
  <p>Question:</p>
  
  <p>In Yield data, I have a column that describes the labels corresponding to each of the entries in the column "ID_1". What I am trying to achieve is two things:</p>
  
  <p>1) plot the map and add the "ID_1" variable entries as labels on the map, thus identifying each region;</p>
  
  <p>2) generate a second legend, besides the one that captures the values in the data, and which the entries in "ID_1" and their corresponding description in the "Labels" column in the dataframe.</p>
  
  <p>I hope I framed my question clearly.</p>
  
  <p>thanks.</p>