title: How to produce annotated monthly heatmap in R?
body: <p>I have a dataset similar as follows:</p>
  <pre><code>df &lt;- structure(list(Topic = c(&quot;Topic_A&quot;, &quot;Topic_A&quot;, 
                                &quot;Topic_A&quot;, &quot;Topic_A&quot;, &quot;Topic_A&quot;, 
                                &quot;Topic_A&quot;, &quot;Topic_A&quot;, &quot;Topic_A&quot;, 
                                &quot;Topic_A&quot;, &quot;Topic_A&quot;, &quot;Topic_A&quot;, 
                                &quot;Topic_B&quot;, &quot;Topic_B&quot;, &quot;Topic_B&quot;, 
                                &quot;Topic_B&quot;, &quot;Topic_B&quot;, &quot;Topic_B&quot;, 
                                &quot;Topic_B&quot;, &quot;Topic_B&quot;, &quot;Topic_B&quot;, 
                                &quot;Topic_B&quot;, &quot;Topic_B&quot;), 
                      month = structure(c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 
                                          11L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L), .Label = c(&quot;Jan&quot;, 
                                          &quot;Feb&quot;, &quot;Mar&quot;, &quot;Apr&quot;, &quot;May&quot;, &quot;Jun&quot;, &quot;Jul&quot;, &quot;Aug&quot;, &quot;Sep&quot;, &quot;Oct&quot;, 
                                          &quot;Nov&quot;, &quot;Dec&quot;), class = c(&quot;ordered&quot;, &quot;factor&quot;)), N = c(439L, 
                                          291L, 592L, 527L, 336L, 254L, 141L, 137L, 68L, 182L, 125L, 
                                          48L, 111L, 74L, 127L, 55L, 80L, 105L, 129L, 63L, 72L, 82L
                                          )), row.names = c(NA, 22L), class = &quot;data.frame&quot;)
  </code></pre>
  <p>And I am using the following code to produce a monthly heatmap, month name on X-axis and Topic name on Y axis:</p>
  <pre><code>ggplot(df, aes( month,Topic)) + geom_tile(aes(fill = N),colour = &quot;white&quot;) +
    #scale_fill_gradient(low = col1, high = col2) +  
    scale_fill_viridis(name=&quot;Hrly Temps C&quot;,option =&quot;C&quot;)+
    guides(fill=guide_legend(title=&quot;Frequency&quot;)) +
    labs(title = &quot;Topic Heatmap&quot;,
         x = &quot;Month&quot;, y = &quot;Topic&quot;) +
    theme_bw() + theme_minimal() + 
    theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank())
  </code></pre>
  <p>Since in my original dataset, topic names are different for almost each month, I would like to annotate each box of heatmap with the topic name against its corresponding month, removing Y-axis in this scenario, and adding text inside the heatmap box for each month.</p>
  <p>Any guidance how can I do that?</p>