Make a Positioning Method that labels a certain x value.
label.endpoints <- function ### Make a Positioning Method that labels a certain x value. (FUN, ### FUN(d$x) should return an index of which point to label. for ### example you can use which.min or which.max. HJUST ### hjust of the labels. ){ stopifnot(is.function(FUN)) stopifnot(length(HJUST)==1) stopifnot(is.numeric(HJUST)) stopifnot(is.finite(HJUST)) function(d,...)gapply(d,function(d,...){ i <- FUN(d$x)==d$x if(length(i)==0){ data.frame() }else{ sub.df <- d[i,] if(nrow(sub.df) > 1){ y.target <- mean(range(sub.df$y)) sub.df <- sub.df[1,] sub.df$y <- y.target } sub.df$hjust <- HJUST sub.df$vjust <- 0.5 sub.df } }) ### A Positioning Method like first.points or last.points. }
Please contact Toby Dylan Hocking if you are using directlabels or have ideas to contribute, thanks! |
Documentation website generated from source code version 2021.2.24 (git revision bb6db07 Mon, 14 Jun 2021 22:38:45 +0530) using inlinedocs. |
validate |