col = grey()
создает HEX-коды для серой шкалы на основе значений, размещенных внутри. Да, эти цифры должны быть между 0: 1. Если вы пытаетесь получить отдельный серый HEX-код для каждого уникального остатка, вы можете сделать это с помощью функций length
и unique
. Ниже приведен пример, где у нас разные серые шкалы, для каждой группы наш фрейм данных:
Group <- c(1,1,1,1,2,2,2,2,3,3,3,3)
Year <- c(2006,2007,2008,2009,2006,2007,2008,2009,2006,2007,2008,2009)
Qtr.1 <- as.numeric(c(15,13,22,13,12,16,13,23,11,15,17,14))
DF <- data.frame(Group,Year,Qtr.1)
#to get HEX for each unique input
c <- grey(1:length(unique(DF$Group))/length(unique(DF$Group)))
c
> [1] "#555555" "#AAAAAA" "#FFFFFF"
#Without Grey
plot(DF$Year,DF$Qtr.1)
#With Grey
plot(DF$Year,DF$Qtr.1, col = c[Group])
Обратите внимание, что я не сделал выбор в отношении созданных серых HEX-кодов, а HEX-код группы 3 настолько слабый, что его трудно обнаружить. Кроме того, нам нужно было индексировать Group
в конце аргумента col
. Как уже упоминали другие, вероятно, есть лучшие способы сделать это, чем серая шкала и функция базового графика. Взгляд на другие пакеты, вероятно, является лучшим вариантом для настраиваемой визуализации (например, ggplot или того, что заметили другие).
Проверьте это хорошее резюме для получения дополнительной информации о col