У меня было это несколько раз, так что вот: я делаю некоторые графики, которые содержат кривые с оценками параметра, заданного параметром настройки.
Как правило, у меня также есть SD для каждой оценкизначение, чтобы я мог показывать полосы ошибок вокруг каждого из них.
Однако мне не нравятся полосы ошибок, и я предпочел бы какую-то сглаженную версию.Это само по себе не проблема (то есть я знаю, как это сделать).Тем не менее, мой график содержит несколько подобных кривых, каждый из которых имеет свой собственный цвет.Поэтому я хотел бы добавить «сглаженную область ошибок» к каждой кривой цветом, который соответствует цвету самой кривой.Конечно, я хотел бы сделать это несколько прозрачно, так что я все еще могу видеть другие кривые через «область ошибок».
Итак, мой вопрос: заданный цвет (определяется либо числом, либоname или значение rgb --- обратите внимание, что первые два представляют дополнительную проблему, но это происходит довольно часто, так как базовые функции построения графиков принимают их как допустимые значения цвета), как мне найти подходящий цвет, который имеет тот же rgb?но другой (заданный) альфа-уровень (прозрачность).Я хотел бы такую функцию, как:
makeTransparent<-function(someColor, alpha=100)
{
newColor<-someColor + alpha #I wish
return(newColor)
}
Это должно работать для таких вещей, как:
makeTransparent(2)
makeTransparent("red")
makeTransparent(rgb(0,0,1))
Edit Я ненавижу, когда я пропускаю что-то очевидное, но @Темел указал мне на это (спасибо еще раз).Вот полное решение (примечание: работает векторизация, поэтому вы можете передать более одного цвета; в настоящее время поддерживается только одна альфа):
#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)})
}