Skip to content
Snippets Groups Projects
Commit f9f647c1 authored by Deepankar Chakroborty's avatar Deepankar Chakroborty
Browse files

Squashed commit of the following:

commit fedbca4a
Author: Deepankar Chakroborty <deepankar.chakroborty@utu.fi>
Date:   Thu Jul 30 12:50:20 2020 +0300

    Updates

    1. Improve readability
    2. Manage differing lengths of breaks and labels.

commit fb32fb91
Author: Deepankar Chakroborty <deepankar.chakroborty@utu.fi>
Date:   Thu Jul 30 12:43:20 2020 +0300

    skip.steps works as expected

    skip.steps = 1, now skips 1 observation.

commit 00a8bbcf
Author: Deepankar Chakroborty <deepankar.chakroborty@utu.fi>
Date:   Thu Jul 30 12:32:16 2020 +0300

    add script to calculate breaks for axes in ggplot2

    calculates breaks and labels for axes in ggplot2 with user defined gaps
parent 36b51322
No related branches found
No related tags found
No related merge requests found
# #<---------------------------->
# # 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))
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment