从ggplot中检索颜色 - 值映射

时间:2015-09-18 11:02:36

标签: r ggplot2

我假设ggplot scale创建某种函数,它读取相应的aes值并返回coloursize等。这可以用作独立函数吗?

例如,对于此函数,我将传递必要的参数(rangelimitshighlow等)和我想要的值得到映射,函数的输出将是colour / size / etc。

# example of usage
HypotheticalScaleFunction(
   range = c(0,10),
   high = '#000000',
   low = '#222222',
   ValueToLookup = 5
)
# this should return -
"#111111"

1 个答案:

答案 0 :(得分:2)

您可以通过输入缩放功能来阅读来源。例如,如果您仔细阅读ggplot2::scale_color_continuous的来源,则会发现它使用seq_gradient_pal包中的scales

因此,对于连续比例的颜色,我们可以定义以下函数(使用ggplot使用的默认值):

ColorScaleFunction <- function(Range, high = "#56B1F7", low = "#132B43", ValueToLookup) {
  seq_gradient_pal(low, high)((ValueToLookup - Range[1]) / diff(Range))
}

这会产生默认情况下的典型深蓝色,例如热像图。

虽然在你的例子中产生了#161616