I have created a plot using ggplot which moves the positions of the points.
But when I use the attribute dynamicTicks = TRUE the positions of the point goes back to default.
Is there any way I can override this to keep the positions I have specified?
Edited to add reproducible code.
library(tidyverse)
library(plotly)
df <- structure(list(SerialNumber = c("634", "634", "567", "634", "634", 
                                      "562", "567", "567", "562", "562", "634", "569", "634", "634", 
                                      "634", "634", "634", "634", "634", "634", "634", "634", "561", 
                                      "634", "569", "569", "634", "634", "634", "567", "567", "567", 
                                      "634", "634", "567", "567", "567", "634", "562", "569"), `_device` = c("module1", 
                                                                                                             "module1", "module1", "module1", "module2", "module4", "module2", 
                                                                                                             "module2", "module4", "module1", "module1", "module4", "module1", 
                                                                                                             "module1", "module1", "module1", "module1", "module1", "module3", 
                                                                                                             "module1", "module1", "module3", "module2", "module1", "module1", 
                                                                                                             "module1", "module1", "module1", "module2", "module1", "module1", 
                                                                                                             "module3", "module1", "module1", "module1", "module1", "module1", 
                                                                                                             "module1", "module1", "module4"), `_source_program` = c("program1", 
                                                                                                                                                                     "program2", "program3", "program2", "program4", "program2", "program2", 
                                                                                                                                                                     "program1", "program2", "program2", "program2", "program2", "program2", 
                                                                                                                                                                     "program2", "program2", "program2", "program2", "program2", "ONprogram3", 
                                                                                                                                                                     "program1", "program3", "ONprogram3", "program6", "program1", 
                                                                                                                                                                     "program6", "program2", "program4", "program6", "program4", "program6", 
                                                                                                                                                                     "program6", "ONprogram3", "program6", "program2", "program4", 
                                                                                                                                                                     "program6", "program6", "program2", "program6", "program2"), 
                     date = structure(c(18891, 18906, 18937, 18940, 18943, 18949, 
                                        18952, 18956, 18966, 18972, 18983, 18981, 19007, 19023, 19036, 
                                        19036, 19037, 19066, 19072, 19082, 19082, 19088, 19086, 19091, 
                                        19106, 19106, 19115, 19109, 19122, 19142, 19145, 19151, 19149, 
                                        19149, 19157, 19157, 19169, 19175, 19185, 19192), class = "Date")), row.names = c(NA, 
                                                                                                                          -40L), spec = structure(list(cols = list(SerialNumber = structure(list(), class = c("collector_double", 
                                                                                                                                                                                                              "collector")), `_device` = structure(list(), class = c("collector_character", 
                                                                                                                                                                                                                                                                     "collector")), `_source_program` = structure(list(), class = c("collector_character", 
                                                                                                                                                                                                                                                                                                                                    "collector")), date = structure(list(format = ""), class = c("collector_date", 
                                                                                                                                                                                                                                                                                                                                                                                                 "collector"))), default = structure(list(), class = c("collector_guess", 
                                                                                                                                                                                                                                                                                                                                                                                                                                                       "collector")), delim = ","), class = "col_spec"), class = c("spec_tbl_df", 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   "tbl_df", "tbl", "data.frame"))
programs <- unique(df$`_source_program`)
nudgeAmounts <- ""
for (i in 1:length(programs)) {
  if (i == 1) {
    nudgeAmounts <- ifelse(df$`_source_program` == programs[i],as.double(paste0("0.", i)), 0)
  } else {
    nudgeAmounts <- ifelse(df$`_source_program` == programs[i],as.double(paste0("0.", i)), nudgeAmounts)
  }
  
}
shapes <- c(15,16,17,18,7,8)
names(shapes) <- programs
g <- ggplot(df, aes(date, SerialNumber, shape = `_source_program` , color =`_device`)) +
  geom_point(position = position_nudge(y = nudgeAmounts), 
             size = 3
  ) +
  theme_bw() + 
  expand_limits(y = c(1, length(levels(as.factor(df$SerialNumber))) + 1)) + 
  labs(y = "Serial Number", x = "Date") +
  scale_shape_manual(values = shapes)
g
ggplotly(g, dynamicTicks = TRUE) 


 
    

