Используйте названный цвет r в rgb (), чтобы я мог добавить альфа-значение - PullRequest
1 голос
/ 12 января 2020

Чтобы упростить тестирование цветов на сложном графике, я хотел бы использовать именованные цвета, но указать альфа. Моей первой мыслью было использовать col2rgb(). Примерно так

rgb( col2rgb( "red" ), alpha=125, maxColorValue=255 )

Но вывод col2rgb () - это матрица. Я пытался перенести его, преобразовать в символ и т. Д., Но не смог получить его в форме, которую rgb() может использовать. Что странно, так как он называется col2rgb.

Ситуация более сложная, чем эта, и я должен указать альфа, давая цвет.

1 Ответ

1 голос
/ 12 января 2020

Мы можем t переназначить для создания 3 столбца matrix, поскольку col2rgb представляет собой один столбец matrix с именами строк, т.е.

col2rgb( "red" )
#       [,1]
#red    255
#green    0
#blue     0
t(col2rgb( "red" ))
#     red green blue
#[1,] 255     0    0

и в соответствии с ?rgb

Цвета можно указать, передав матрицу или фрейм данных в качестве аргумента красным, а синий и зеленый пропущены. В этом случае за первые три столбца красного принимаются значения красного, зеленого и синего.

Итак, мы можем использовать 3 столбца matrix

rgb(t(col2rgb( "red" )), alpha=125, maxColorValue=255 )
#[1] "#FF00007D"

Или как data.frame

rgb(as.data.frame(t(col2rgb( "red" ))), alpha=125, maxColorValue=255 )
#[1] "#FF00007D"

, что совпадает с

rgb(red = 255, green = 0, blue = 0, alpha=125, maxColorValue=255 )
#[1] "#FF00007D"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...