R. Назначьте цвета диапазонам строк во фрейме данных, создавая точечный график PCA - PullRequest
0 голосов
/ 10 октября 2019

У меня есть фрейм данных df1, подобный этому (на самом деле он имеет тысячи строк):

SampleID  PC1  PC2
SJ-27_SJ-27  0.0246128  0.0188152
SJ-28_SJ-28  0.0286733 -0.0145702
SJ-54_SJ-54  0.0344723  0.0236423
SJ-61_SJ-61  0.0265009  0.0202153
SJ-66_SJ-66  0.0303340  0.0071670
SJ-71_SJ-71 -0.0004866 -0.0037853

Используя R, я хочу построить PC1 против PC2, например:

plot(df1[,2], df1[,3])

Но я хочу дать разные цвета точкам графика в зависимости от номера строки. Например, строки 1-2 зеленого цвета, строки 3-4 красного цвета, строки 5-6 серого цвета. Я получил бы изображение, подобное этому, по следующей ссылке:

https://www.biostars.org/p/271694/

Должен быть очень простой способ сделать это, но я не могу его найти. Большое спасибо.

1 Ответ

1 голос
/ 11 октября 2019

В базе R вы можете добавить столбец (или создать вектор) с факторными переменными для групп населения, а затем отобразить цвет. Используя данные вашего примера:

df1$Grp <- factor(c("A", "A", "A", "B", "B", "B"))

plot(df1$PC1, df1$PC2, col = df1$Grp, pch = 16)

enter image description here

ggplot2 дает вам больший контроль над цветовым отображением и автоматической легендой:

library(ggplot2)
ggplot(df1, aes(PC1, PC2)) +
geom_point(aes(color = Grp)) +
theme_bw()

enter image description here

...