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
