Freezing the axis-labels on top of figure in R shiny

I have a renderGirafe that is very long. I want the user to be able to see the x-axis values (which are on top of figure) after scrolling down.

Here is a sample code. In this code, I want the user to still be able to see the years when he/she scrolls down. I’m pretty flexible with what type of plot to be generated, as long as it shows the labels when hovering the mouse over each block. Suggestions are welcome!

library(shiny)
library(tidyverse)
library(ggiraph)

ui <- fluidRow(girafeOutput("my_plot"))

server <- function(input, output){
  output$my_plot <- renderGirafe({
    
    data <- data.frame(
      letter = rep(c(LETTERS, letters, paste0(LETTERS, letters))),
      year = factor(rep_len(2000:2008, 78)),
      value = floor(runif(78, 1, 6))
    )
    
    g <- ggplot(data) + 
      geom_tile_interactive(aes(x = year, y = letter, fill = value, tooltip = value)) + 
      scale_x_discrete(position = "top") + 
      coord_fixed() +
      theme_classic() + 
      theme(axis.text.x = element_text(
        angle = 90,
        hjust = 0.5,
        vjust = 0,
        size = 17
      )) 
    
    girafe(ggobj = g,  
           options = list(opts_sizing(rescale = F)),
           width_svg = 20,
           height_svg = 50
    )
  })
}

shinyApp(ui = ui, server = server)