R - Перевести матричный объект (более 3-х значений) в систему RGB - PullRequest
0 голосов
/ 10 января 2019

У меня есть следующие данные:

head(spca,3)
        Axis 1       Axis 2     Axis 3      Axis 4    Axis 5
P2    0.41785706 -2.215135138  1.1873094 -1.90061886  1.42734543
P92  -3.10662325  2.062759336  2.9738782  0.34503630 -2.4026353
P144 -4.68879566  2.090462774  3.7421616  0.03259024  1.046545319

head(coord,3)
    Longitude Latitude
P2   35.13092 32.51011
P92  35.34025 32.55186
P144 35.47386 32.85336

Я создаю цвета для строк, используя команду colorplot из пакета adegenet. Команда использует таблицу spca и переводит ее в систему RGB.

plot(c(34.6,35.9),c(31.2,33.5),cex=.01, ylab="",xlab="")
colorplot(coord, spca1, axes=1:5, transp=TRUE, add=TRUE,cex=2.5)   

And the plot looks like this.

Но я на самом деле хочу нанести это на ggplot, где цветовая диаграмма не работает, и мне нужны цветовые градиенты, которые представляют отношения строк, как описано на 5-й оси. Поэтому мне интересно, как я могу сам создать цвета, такие как colorplot, чтобы использовать их в geom_point?

ggplot

Есть идеи?

Спасибо

1 Ответ

0 голосов
/ 10 января 2019

В отсутствие набора данных для тестирования, это все еще возможно ответить.

Чтобы найти ответ на эти вопросы, сначала попробуйте ?colorplot или help(colorplot). Посмотрите раздел «Значение», в котором описано, что функция возвращает для дальнейшего использования. Здесь нам говорят, что функция вернет цвета, использованные во время прорисовки.

plot(c(34.6,35.9),c(31.2,33.5),cex=.01, ylab="",xlab="")
colours <- colorplot(coord, spca1, axes=1:5, transp=TRUE, add=TRUE,cex=2.5) 
ggplot(data = coords)+geom_point(aes(x = <column 1 name>, y = <column 1 name>), 
                                 col = colours, size = 2.5)                       

должен дать вам такой же (или похожий) ответ (измените координаты в аргументе aes(...), чтобы они соответствовали вашим данным, и измените размер по своему вкусу).

...