title: ggplot add text inside each tile of geom tile
body: <p>With dataframe <code>df</code> below</p>
  
  <pre><code>df &lt;- data.frame(
    model=c(rep('corolla',3),rep( 'accord',3), rep('sunny',3)),
    variable=c('urban_mileage', 'rural_mileage', 'highway_mileage'),
    rescale=rnorm(9),
    year=c(rep(1998,3),rep( 1997,3), rep(2003,3)),
    kmdone=sample(10:100,9)*1e3
    )
  &gt; df
      model        variable     rescale year kmdone
  1 corolla   urban_mileage -1.03675182 1998  56000
  2 corolla   rural_mileage  1.06079162 1998  83000
  3 corolla highway_mileage -0.18808551 1998  19000
  4  accord   urban_mileage -0.05151496 1997  69000
  5  accord   rural_mileage  0.05219512 1997  54000
  6  accord highway_mileage -2.03139240 1997  21000
  7   sunny   urban_mileage -0.06225862 2003  40000
  8   sunny   rural_mileage  1.38191440 2003  96000
  9   sunny highway_mileage -1.02367124 2003  55000
  &gt; 
  </code></pre>
  
  <p>I'm creating a heatmap using geom_tile as follows</p>
  
  <pre><code>ggplot(df, aes(variable, model)) + geom_tile(aes(fill = rescale), colour = "white") +
       scale_fill_gradient2(low = "red", mid = "white", high = "green") +
       labs(x = "",y = "") +
       theme(legend.title = element_blank(),
             axis.text.x = element_text(angle=30,hjust=1,vjust=1.0),
             axis.text.y = element_text(size = 12))
  </code></pre>
  
  <p>This gives a heat-map representation of mileage by road type as shown in the image at the end.</p>
  
  <p>I need to enhance this with two things</p>
  
  <ol>
  <li>Add <code>year</code> as label for each model on the right-axis (secondary y-axis - though it is frowned upon :) )</li>
  <li>show <code>kmdone</code> values inside each tile as in the df - centered text with black color</li>
  </ol>
  
  <p><a href="https://i.stack.imgur.com/aOblu.jpg" rel="noreferrer"><img src="https://i.stack.imgur.com/aOblu.jpg" alt="enter image description here"></a></p>