add scale_from to spec tools
diff --git a/R/spec_tools.R b/R/spec_tools.R
index f62f9e3..47e51d1 100644
--- a/R/spec_tools.R
+++ b/R/spec_tools.R
@@ -3,11 +3,19 @@
#' @inheritParams viridisLite::viridis
#' @param x continuous vectors of values
#' @param na_color color code for NA values
+#' @param scale_from input range (vector of length two). If not given,
+#' is calculated from the range of x
#' @export
spec_color <- function(x, alpha = 1, begin = 0, end = 1,
direction = 1, option = "D",
- na_color = "#BBBBBB") {
- x <- round(rescale(x, c(1, 256)))
+ na_color = "#BBBBBB", scale_from = NA) {
+ if (is.na(scale_from)) {
+ x <- round(rescale(x, c(1, 256)))
+ } else {
+ x <- round(rescale(x, to = c(1, 256),
+ from = scale_from))
+ }
+
color_code <- viridisLite::viridis(256, alpha, begin, end, direction, option)[x]
color_code[is.na(color_code)] <- na_color
return(color_code)
@@ -45,9 +53,17 @@
#' @param begin Smalles font size to be used. Default is 10.
#' @param end Largest font size. Default is 20.
#' @param na_font_size font size for NA values
+#' @param scale_from input range (vector of length two). If not given,
+#' is calculated from the range of x
#' @export
-spec_font_size <- function(x, begin = 8, end = 16, na_font_size = 12) {
- x <- round(rescale(x, c(begin, end)))
+spec_font_size <- function(x, begin = 8, end = 16, na_font_size = 12,
+ scale_from = NA) {
+ if (is.na(scale_from)) {
+ x <- round(rescale(x, c(begin, end)))
+ } else {
+ x <- round(rescale(x, to = c(begin, end),
+ from = scale_from))
+ }
x[is.na(x)] <- na_font_size
return(x)
}
@@ -57,9 +73,16 @@
#' @param x continuous vectors of values
#' @param begin Smallest degree to rotate. Default is 0
#' @param end Largest degree to rotate. Default is 359.
+#' @param scale_from input range (vector of length two). If not given,
+#' is calculated from the range of x
#' @export
-spec_angle <- function(x, begin, end) {
- x <- round(rescale(x, c(begin, end)))
+spec_angle <- function(x, begin, end, scale_from = NA) {
+ if (is.na(scale_from)) {
+ x <- round(rescale(x, c(begin, end)))
+ } else {
+ x <- round(rescale(x, to = c(begin, end),
+ from = scale_from))
+ }
x[is.na(x)] <- 0
return(x)
}
diff --git a/man/spec_angle.Rd b/man/spec_angle.Rd
index 5df2b13..a68d6d6 100644
--- a/man/spec_angle.Rd
+++ b/man/spec_angle.Rd
@@ -4,7 +4,7 @@
\alias{spec_angle}
\title{Generate rotation angle for continuous values}
\usage{
-spec_angle(x, begin, end)
+spec_angle(x, begin, end, scale_from = NA)
}
\arguments{
\item{x}{continuous vectors of values}
@@ -12,6 +12,9 @@
\item{begin}{Smallest degree to rotate. Default is 0}
\item{end}{Largest degree to rotate. Default is 359.}
+
+\item{scale_from}{input range (vector of length two). If not given,
+is calculated from the range of x}
}
\description{
Generate rotation angle for continuous values
diff --git a/man/spec_color.Rd b/man/spec_color.Rd
index ab25980..131bcde 100644
--- a/man/spec_color.Rd
+++ b/man/spec_color.Rd
@@ -5,7 +5,7 @@
\title{Generate viridis Color code for continuous values}
\usage{
spec_color(x, alpha = 1, begin = 0, end = 1, direction = 1,
- option = "D", na_color = "#BBBBBB")
+ option = "D", na_color = "#BBBBBB", scale_from = NA)
}
\arguments{
\item{x}{continuous vectors of values}
@@ -25,6 +25,9 @@
and "viridis" (or "D", the default option).}
\item{na_color}{color code for NA values}
+
+\item{scale_from}{input range (vector of length two). If not given,
+is calculated from the range of x}
}
\description{
Generate viridis Color code for continuous values
diff --git a/man/spec_font_size.Rd b/man/spec_font_size.Rd
index aeacd93..9688dec 100644
--- a/man/spec_font_size.Rd
+++ b/man/spec_font_size.Rd
@@ -4,7 +4,8 @@
\alias{spec_font_size}
\title{Generate common font size for continuous values}
\usage{
-spec_font_size(x, begin = 8, end = 16, na_font_size = 12)
+spec_font_size(x, begin = 8, end = 16, na_font_size = 12,
+ scale_from = NA)
}
\arguments{
\item{x}{continuous vectors of values}
@@ -14,6 +15,9 @@
\item{end}{Largest font size. Default is 20.}
\item{na_font_size}{font size for NA values}
+
+\item{scale_from}{input range (vector of length two). If not given,
+is calculated from the range of x}
}
\description{
Generate common font size for continuous values