title: plot small region of a large polygon map in ggplot2
body: <p>I have a shapefile which I fortified and plotted in ggplot2 using <code>geom_polygon</code>. How can I plot only a small region of this map? </p>
  
  <p>My full map looks fine, but my small region is messed up.</p>
  
  <p>Here is a working example:
  This small shapefile can be obtained from:</p>
  
  <p><a href="http://www.mappinghacks.com/data/TM_WORLD_BORDERS_SIMPL-0.2.zip" rel="noreferrer">http://www.mappinghacks.com/data/TM_WORLD_BORDERS_SIMPL-0.2.zip</a></p>
  
  <pre><code>#read data
  spf&lt;-readOGR(getwd(),"TM_WORLD_BORDERS_SIMPL-0.2")
  spf@data$id&lt;-rownames(spf@data)
  
  #fortify
  spf1&lt;-fortify(spf,region="id")
  
  #full plot
  ggplot(spf1)+geom_polygon(aes(long,lat,group=group),colour="grey90")
  </code></pre>
  
  <p><img src="https://i.stack.imgur.com/WfMOd.png" alt="fullplot"></p>
  
  <pre><code>#subset plot #this is messy since polygons are broken
  ggplot(spf1)+geom_polygon(aes(long,lat,group=group),colour="grey90")+
  scale_x_continuous(limits = c(-2, 2))+
  scale_y_continuous(limits = c(50, 51))
  </code></pre>
  
  <p><img src="https://i.stack.imgur.com/yn4x7.png" alt="enter image description here"></p>
  
  <p>Thanks.</p>