Как по-разному раскрасить каждый столбец в функции графика?

У меня есть кадр данных следующим образом:

       A          B        C        D          E        F        
T1     1          0        4        6          2        5      
T2     1          0        4        6          2        5        
T3     1          0        4        6          2        5        
T4     1          0        4        6          2        5 

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

points(dat.pcoa$points[ ,1], dat.pcoa$points[ ,2],
   pch = 19, cex = 3, bg = "gray", col = "gray")

У меня написан этот код, я не знаю, как назначить ему поддон, так как у меня большой диапазон точек данных, поэтому я не могу назначить вектор (c <- "red","blue"), так как это было бы утомительным упражнением.


person Ash    schedule 24.02.2017    source источник
comment
Пример с ggplot2   -  person Jaap    schedule 24.02.2017
comment
Хорошая вещь в ggplot2 заключается в том, что у него есть разные слои и больше примеров, которые можно найти в Интернете. к этому и использование поддона. Тем не менее, мне нужно делать свои графики в базовом R (долгая причина), и мне нужен поддон из-за огромного количества столбцов, которые у меня есть.   -  person Ash    schedule 24.02.2017


Ответы (1)


В пакете RColorBrewer есть несколько готовых палитр, но если вам нужна только базовая R, вы можете попробовать создать ее самостоятельно. Есть несколько базовых функций, которые создают цветовые строки — я предлагаю использовать hsv(), потому что проще создавать разные цвета одинаковой насыщенности, а rgb() потребует изменения всех трех аргументов.

Например, создание 10 цветов с оттенками от 0,1 до 1 с сохранением насыщенности и яркости на уровне 0,7:

barplot(1:10, col=sapply(1:10/10, hsv, 0.7, 0.7))

красочная полоса


РЕДАКТИРОВАТЬ: rainbow кажется встроенной оболочкой, которая делает именно это - вызов hsv для получения желаемого количества цветов. Спасибо @db!

person juod    schedule 24.02.2017
comment
Может быть, также упомянуть rainbow - person d.b; 24.02.2017