title: Two seperate color gradient color scales on one ggplot2 map
body: <p>I am trying to plot a map that has two different color scales on it for different countries. </p>
  
  <p>Example of my data:</p>
  
  <pre><code>&gt;df
           country responses         area
  1         Canada       150 northamerica
  2  United States        70 northamerica
  3         Mexico        65 northamerica
  4        Germany       120       europe
  5         France        55       europe
  6          Spain        71       europe
  </code></pre>
  
  <p>I would like there to be one gradient (blues) showing the number of responses for <code>northamerica</code> and another one (reds) showing the number of responses for <code>europe</code> on the same world map. </p>
  
  <p>I have tried subsetting the data and doing two different <code>geom_map</code> lines but I get <code>Scale for 'fill' is already present. Adding another scale for 'fill', which will replace the existing scale.</code></p>
  
  <pre><code>na &lt;- df[df$area=="northamerica",]
  euro &lt;- df[df$area=="europe",]
  
  library(maptools)
  library(ggplot2)
  data(wrld_simpl)
  wrld_simpl@data$id &lt;- wrld_simpl@data$NAME
  wrld &lt;- fortify(wrld_simpl, region="id")
  wrld &lt;- subset(wrld, id != "Antarctica")
  
  gg &lt;- ggplot()
  gg &lt;- gg + geom_map(data=wrld, map=wrld, aes(map_id=id, x=long, y=lat),      fill="white", color="#7f7f7f", size=0.25)
  gg &lt;- gg + geom_map(data=na, map=wrld, aes(map_id=country, fill=responses),  color="white", size=0.25)
  gg &lt;- gg + scale_fill_continuous(high = "#132B43", low = "#56B1F7", name="Number of\nresponses\nNorth America")
  gg &lt;- gg + geom_map(data=euro, map=wrld, aes(map_id=country, fill=responses),  color="white", size=0.25)
  gg &lt;- gg + scale_fill_continuous(high = "#67000d", low = "#fcbba1", name="Number of\nresponses\nEurope")
  gg &lt;- gg + coord_map()
  gg &lt;- gg + labs(x="", y="")
  gg &lt;- gg + theme(plot.background = element_rect(fill = "transparent", colour = NA),
               panel.border = element_blank(),
               panel.background = element_rect(fill = "transparent", colour = NA),
               panel.grid = element_blank(),
               axis.text = element_blank(),
               axis.ticks = element_blank(),
               legend.position = "right")
  gg
  </code></pre>
  
  <p>I just get the last color scale coded instead of both:</p>
  
  <p><img src="https://i.stack.imgur.com/OyW4M.png" alt=""></p>
  
  <p>I can get the two sets of data to be different colors using this code (below) but I can not figure out how to get it to be scaled by the number of responses in this case. </p>
  
  <pre><code>gg &lt;- ggplot()
  gg &lt;- gg + geom_map(data=wrld, map=wrld, aes(map_id=id, x=long, y=lat), fill="white", color="#7f7f7f", size=0.25)
  gg &lt;- gg + geom_map(data=na, map=wrld, aes(map_id=country, fill=responses),  color="white", size=0.25, fill = "blue")
  gg &lt;- gg + geom_map(data=euro, map=wrld, aes(map_id=country, fill=responses),  color="white", size=0.25, fill = "red")
  gg &lt;- gg + coord_map()
  gg &lt;- gg + labs(x="", y="")
  gg &lt;- gg + theme(plot.background = element_rect(fill = "transparent", colour = NA),
               panel.border = element_blank(),
               panel.background = element_rect(fill = "transparent", colour = NA),
               panel.grid = element_blank(),
               axis.text = element_blank(),
               axis.ticks = element_blank(),
               legend.position = "right")
  gg
  </code></pre>
  
  <p>Different colors for the two regions but not scaled by responses</p>
  
  <p><img src="https://i.stack.imgur.com/oln9F.png" alt=""></p>
  
  <p>I have tried other variations of code that would take a while to include here and some of them I would be embarrassed to show since I reached a point where I was just trying anything and everything. If anyone has any suggestions that would be wonderful. I would like to avoid making two maps and then putting them on top of each other but if it comes to it I will do that. </p>
  
  <p>Thank you in advance!</p>