【问题标题】:Retrieve Colour - Value Mapping From ggplot检索颜色 - 来自 ggplot 的值映射
【发布时间】:2015-09-18 11:02:35
【问题描述】:

我假设 ggplot scales 创建某种函数,它读取适当的aes 值并返回colour、size 等。这可以用作独立函数吗?

例如,我将传递必要的参数(range、limits、high、low 等)和我想要获取映射的值以及输出该函数将是colour / size / 等。

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

【问题讨论】:

  • 并非如此。如果我应用了连续填充并且我想查询原始数据集中不存在的值,那么这将不起作用。
  • 好的,抱歉,我误解了你的问题。您可能希望详细说明并提供一个最小示例。
  • 没问题,我的文字描述可能不清楚。我现在添加了一个示例。
  • 您要手动执行此操作的原因是什么?

标签: r ggplot2


【解决方案1】:

您可以通过阅读源代码、输入比例函数来找到它。例如,如果您阅读ggplot2::scale_color_continuous 的源代码,您会发现它使用了scales 包中的seq_gradient_pal。

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

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

这会导致您默认获得的典型深蓝色,例如热图。

它会在您的示例中生成#161616。

【讨论】:

    猜你喜欢
    • 2021-06-23
    • 1970-01-01
    • 1970-01-01
    • 2012-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多