我已经有过几次了,所以这里是:我正在制作一些曲线图,其中包含给定调整参数的参数估计值。
通常,我也有每个估计值的 SD,所以我可以在每个估计值周围显示误差线。
但是,我不喜欢误差线,并且更喜欢它的一些平滑版本。这本身没有问题(即我知道该怎么做)。但是,我的绘图包含几条类似的曲线,每条曲线都有自己的颜色。因此,我想以与曲线本身颜色相匹配的颜色将“平滑误差区域”添加到每条曲线。当然,我想稍微透明地做到这一点,所以我仍然可以通过“错误区域”看到其他曲线。
所以,我的问题是:给定一种颜色(由数字、名称或 rgb 值指定——注意前两个会造成额外的问题,但这种情况经常发生,因为基本绘图函数将这些视为有效颜色值),如何找到具有相同 rgb 但不同(给定)alpha 级别(透明度)的匹配颜色。我想要一个类似的功能:
makeTransparent<-function(someColor, alpha=100)
{
newColor<-someColor + alpha #I wish
return(newColor)
}
这应该适用于以下情况:
makeTransparent(2)
makeTransparent("red")
makeTransparent(rgb(0,0,1))
编辑当我错过一些明显的东西时,我讨厌它,但是@themel 向我指出了它(再次感谢)。这是一个完整的解决方案(注意:工作矢量化,所以你可以传递不止一种颜色;虽然此时只支持一个 alpha):
#note: always pass alpha on the 0-255 scale
makeTransparent<-function(someColor, alpha=100)
{
newColor<-col2rgb(someColor)
apply(newColor, 2, function(curcoldata){rgb(red=curcoldata[1], green=curcoldata[2],
blue=curcoldata[3],alpha=alpha, maxColorValue=255)})
}