Я не думаю, что есть базовая функция R для генерации оттенков цвета.Очевидно, что есть такие функции и палитры в различных R-пакетах.Но вместо этого мы можем использовать следующее
myShade <- function(i, n = 10) {
upper <- c(110, 0, 0)
lower <- c(255, 210, 210)
shade <- round(lower + (i - 1) * (upper - lower) / (n - 1))
paste(c("#", sprintf("%02s", as.hexmode(shade))), collapse = "")
}
barplot(table(letters[1:10]), col = sapply(1:10, myShade))
![enter image description here](https://i.stack.imgur.com/l1CYD.png)
Здесь i
- целое число от 1 до 10, а n
- общее числооттенков.В целом, однако, вы можете установить, например, n = 1
и i
для любого действительного числа из [0,1], что даст вам много оттенков (хотя и не бесконечно много из-за округления в shade
).
Тогда upper
и lower
соответствуют темно-красному и светло-красному соответственно в формате RGB.Изменяя их, вы можете прямо изменить свою палитру.Затем shade
выполняет интерполяцию, а последняя строка создает шестнадцатеричный код, например,
myShade(5)
# [1] "#bf7575"
Тогда, я думаю, вы могли бы сделать
V(net)$color <- sapply(V(net)$A, myShade) # or as.numeric(V(net)$A) if V(net)$A is a character