R中是否有亮色或暗色功能?

时间:2018-03-22 19:49:16

标签: r ggplot2

我有一个ggplot2图并且百分比标签为白色,但有时条形图的颜色太浅而白色标签变得难以辨认。是否有一个函数,给定一个颜色值将返回是否是例如是暗还是亮?然后我可以将标签颜色设置为白色或黑色......

1 个答案:

答案 0 :(得分:8)

根据@MrFlick提供的(第二)链接中的强度等级,实施选择黑色与白色的文本颜色的策略。

该博客引用了W3C出版物:a standard formula for calculating the perceived brightness of a color,它使用RGB编码颜色的算法:

 ((Red value X 299) + (Green value X 587) + (Blue value X 114)) / 1000

col2rgb函数提供了一个3行矩阵,我乘以该网页中提供的因子。我使用了一个“红色”的例子作为背景颜色,然后选择的文本将是“白色”

 c( "black", "white")[  1+(sum( col2rgb("red") *c(299, 587,114))/1000 < 123) ]
[1] "white"

作为一个功能实现:

isDark <- function(colr) { (sum( col2rgb(colr) * c(299, 587,114))/1000 < 123) }
isDark("red")
[1] TRUE