diff --git a/ggplotBreaks.R b/ggplotBreaks.R
new file mode 100644
index 0000000000000000000000000000000000000000..bbac9fce99ee4171f982abc0a69b5f50f8e9806c
--- /dev/null
+++ b/ggplotBreaks.R
@@ -0,0 +1,64 @@
+# #<---------------------------->
+# # Please include this section when distributing and/or using this code. 
+# # Please read and abide by the terms of the included LICENSE
+# #
+# #  Author : Deepankar Chakroborty (https://gitlab.utu.fi/deecha)
+# #  Report issues: https://gitlab.utu.fi/deecha/shared_scripts/-/issues
+# #  License: https://gitlab.utu.fi/deecha/shared_scripts/-/blob/master/LICENSE
+# #
+# #  PURPOSE:
+# #  Returns a list of vectors containing breaks and labels 
+# # for a continuous variable mapped to one of the axes for use with ggplot2
+# #  User enters: 
+# #     - the range of the data 
+# #     - the tick amount
+# #     - skip.steps (if any) = number of labels to skip 
+# #                             (i.e. show tick but no label)
+# #     e.g.
+# #         ggplotBreaks(c(0,150), tick =10, skip.steps = 1) # gives
+# #  $breaks
+# #     0  10  20  30  40  50  60  70  80  90 100 110 120 130 140 150
+# # 
+# #  $labels
+# #    "0"  " "  "20"  " "  "40"  " "  "60"  " "  "80"  " "  "100"  " "
+# #    "120"  " "  "140"  " "
+# #
+# #<---------------------------->
+
+ggplotBreaks <- function(range,tick,skip.steps=0){
+  if (length(range) != 2){
+    stop("Correct format for: range = c(min_value,max_value)")
+  }
+  if(skip.steps<0){
+    stop(" 'skip.steps' should be >= 0")
+  }
+  breaks <- seq(from = range[1],
+                to = range[2],
+                by = tick)
+  if(skip.steps==0){
+    labels <- as.character(breaks)  
+  } else {
+    tmp <- c()
+    labels <- unlist(
+      lapply(
+        breaks[seq(from = 1,
+                   to = length(breaks),
+                   by = skip.steps+1)],
+        function(x) c(tmp,
+                      c(x,
+                        rep(" ",skip.steps)))),
+                     use.names = F)
+    rm(tmp)
+    
+  }
+  if(length(labels) < length(breaks)){
+    ## Add more spaces at the end to make lengths match
+    labels <- c( labels, rep(" " , (length(breaks) - length(labels))))
+  }
+  if ( length(breaks) < length(labels)){
+    ## Remove spaces from the end to make the lengths match
+    labels <- labels[1:length(breaks)]
+  }
+  return(list( breaks = breaks,
+              labels = labels))
+}