title: ggplot2 Facet wrapping a filtered variable while keeping background geoms
body: <p>I'm trying to create a set of small multiple line charts, where in each chart all lines are visible as light grey/background but in each individual chart one line is one highlighted.</p>
  <p>As an example I want to go from this chart: <a href="https://i.stack.imgur.com/D9ESC.png" rel="nofollow noreferrer">facet_wrap without previous geom</a> to a facet_wrap that would have two plots, each with all grey dashed lines, and one coloured line per plot.</p>
  <p>I can facet_wrap so each highlighted line has it's own chart (but no other background lines show)(facet_fail below) and I can create individual charts which have all lines in grey and a highlighted single line (ind_chart below), but I can't get both at the same time.</p>
  <p>I'm sure I'm missing a simple setting here but can't see it sorry.</p>
  <p>Here's a simplified example of the data and charts I've made so far.</p>
  <p>(the lines have been converted to radar/polar coordinates but I don't think that should matter?)</p>
  <pre><code>library(tidyverse)
  
  #variables
  food &lt;- rep(c(&quot;apple&quot;, &quot;pear&quot;, &quot;orange&quot;),3)
  sense &lt;- as.factor(rep(c(&quot;taste&quot;, &quot;texture&quot;, &quot;appearance&quot;),each = 3))
  score &lt;- sample(0:10, 9)
  
  #dataframe
  df &lt;- data.frame(food,sense,score) %&gt;% 
    mutate(theta = (as.integer(sense)-1)*(360/n_distinct(y)*pi/180)+pi/2) %&gt;% #transrom data to         polar with cartesian coords
    mutate(x = cos(theta)*score,
           y = sin(theta)*score)%&gt;% 
    rbind(filter(., sense == &quot;taste&quot;)) #repeat first row so that geom_path completes circuit
  
  # Plot
  
  p &lt;- ggplot(df, aes(x = x, y = y, group = food))+
    geom_point(colour = &quot;gray&quot;, size = 3)+
    geom_path(colour = &quot;gray&quot;, size = 1, linetype = &quot;longdash&quot;)+
    geom_spoke(data = data.frame( x = 0,
                                  y = 0,
                                  angle =seq(from = 0, to = 2*pi, length.out = 4)+pi/2,
                                  radius = 10),
               aes(x = x, y = y, angle = angle, radius = radius, group = NULL),
               colour = &quot;darkgray&quot;, size = 0.8)+
      theme_void()
  p
  
  # individual chart is correct
  ind_chart &lt;- p + geom_path(data = filter(df, food == &quot;apple&quot; | food == &quot;orange&quot;), aes(color = food), size = 2)
  
  # facet wrap by 'food' creates multiples without backgroud geom_path's from p
  
  fltr &lt;- filter(df, food == &quot;apple&quot; | food == &quot;orange&quot;)
  
  facet_fail &lt;- p +
    geom_path(data = fltr , aes(color = food))+
    facet_wrap(~food)+
    coord_equal()
  </code></pre>